【问题标题】:Call PHP Wordpress shortcode - Warning: in_array() expects parameter 2 to be array, string given in调用 PHP Wordpress 简码 - 警告:in_array() 期望参数 2 为数组,字符串为
【发布时间】:2018-07-24 13:53:31
【问题描述】:

我正在使用 wordpress 和 2 个名为 unyson 和 brizy 的插件。 基本上,unyson 为我提供了一个简码,我想通过我主页上的首页构建器 brizy 调用它。

我想用 [portfolio] 调用投资组合简码 这行得通。

直播网站:https://xprs.ch/ 在“我们的工作组合”下

现在我想添加选项: [portfolio page_link="On" categories="website"]

只要我定义 page_link 就可以了。 但是,一旦我尝试定义类别,我就会收到以下错误:

Warning: in_array() expects parameter 2 to be array, string given in /home/httpd/vhosts/xprs.ch/httpdocs/wp-content/themes/jevelin/framework-customizations/extensions/shortcodes/shortcodes/portfolio/views/view.php on line 100

如果只是定义类别,我也会遇到上述错误,所以我需要定义这个不同的但如何定义?

短代码中的代码: 注意:我无法更改此代码。 我需要在前端正确传递参数“website”。

$options = array(

    'id' => array( 'type' => 'unique' ),
    'general' => array(
        'title'   => esc_html__( 'General', 'jevelin' ),
        'type'    => 'tab',
        'options' => array(

            'style' => array(
                'type'    => 'radio',
                'label'   => esc_html__('Style', 'jevelin'),
                'desc'  => esc_html__('Choose main style', 'jevelin'),
                'choices' => array(
                    'default' => esc_html__('Standard', 'jevelin'),
                    'default-shadow' => esc_html__('Standard with Shadow', 'jevelin'),
                    'default2' => esc_html__('Trendy', 'jevelin'),
                    'masonry' => esc_html__('Gallery', 'jevelin'),
                    'masonry2' => esc_html__('Marginless Gallery', 'jevelin'),
                    'minimalistic' => esc_html__('Minimalistic', 'jevelin'),
                ),
                'value'   => 'default',
            ),

            'categories' => array(
                'type'  => 'multi-select',
                'label' => esc_html__('Categories', 'jevelin'),
                'desc'  => esc_html__('Select categories', 'jevelin'),
                'population' => 'taxonomy',
                'source' => 'fw-portfolio-category',
                'prepopulate' => 200,
                'limit' => 100,
            ),

            'page_link' => array(
                'type' => 'switch',
                'label' => esc_html__( 'Page Link', 'jevelin' ),
                'desc' => esc_html__( 'Enable or disable portfolio page link', 'jevelin' ),
                'value' => true,
                'left-choice' => array(
                    'value' => false,
                    'label' => esc_html__('Off', 'jevelin'),
                ),
                'right-choice' => array(
                    'value' => true,
                    'label' => esc_html__('On', 'jevelin'),
                ),
            ),

        ),
    ),
);

我需要如何调用类别?

【问题讨论】:

  • “来自简码的代码” - 这基本上只是配置数据,这里没有人知道如何处理这些数据。如果这些插件中的任何一个提供了这个短代码,那么它也应该提供有关如何使用它的文档,不是吗?如果它不能像描述的那样工作,那么你或许应该向插件作者寻求支持。
  • 首先,您没有收到错误,您收到的是警告。当您关闭错误报告时,这将不会显示。其次:向我们展示引发警告的代码。您明确共享的代码不是导致警告的原因。最后:如果您询问的代码在您的插件中,并且您无法更改它,您希望我们在这里为您做什么?

标签: php wordpress shortcode


【解决方案1】:

这里:

$cats = array();
foreach( get_the_category() as $cat ) {
    $cats[] = $cat->cat_ID;
}
$args = array(
    'post_status'    => 'publish',
    'posts_per_page' => -1,
    'tax_query' => array(
        array(
            'taxonomy'         => 'category',
            'field'            => 'id',
            'terms'            => $cats,
            'include_children' => false
        )
    )
);
print_r( WP_Query( $args ) as $post );

http://codex.wordpress.org/Class_Reference/WP_Query

【讨论】:

  • 我无法更改现有的简码。我必须在前端正确输入短代码作为文本 [portfolio categories="website"] 我需要知道如何通过类别网站作为示例
  • 您无法编辑您的简码,但您可以尝试 array_merge,创建另一个数组并将其与旧数组合并为新变量。
猜你喜欢
  • 2021-03-27
  • 2016-03-23
  • 1970-01-01
  • 2013-08-30
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
相关资源
最近更新 更多