我正在尝试创建一个会产生多个错误的短代码。这是我的代码。
function robojob_shortcode_test(){
ob_start();
$args_shortcode = array(
'post_type' => 'job_listing',
'orderby' => 'meta_value_num',
'meta_key' => 'post_views_count',
);
$shortcode = new WP_Query( $args_shortcode );
if ( $shortcode->have_posts()) :
while ( $shortcode->have_posts()) :
$shortcode->the_post();
$post_ID = get_the_ID();
$company_name = get_post_meta( $post_ID, '_company_name', true);
$featured_company_id = get_post_meta( $post_ID, '_featured_company', true);
the_title();
if( $featured_company_id == 'yes'){
echo esc_attr($company_name);
}
endwhile;
endif;
wp_reset_postdata();
$content = ob_get_clean();
return $content;
die;
}
add_shortcode('robojob','robojob_shortcode_test');
错误:
警告:strpos()期望参数1为字符串,数组为 第205行/var/www/html/robojob_pro/wp-includes/shortcodes.php
警告:preg_match_all()期望参数2为字符串,数组 在/var/www/html/robojob_pro/wp-includes/shortcodes.php中给出 213
警告:array_intersect():参数#2不是数组 第214行/var/www/html/robojob_pro/wp-includes/shortcodes.php
注意:数组转换为字符串 /var/www/html/robojob_pro/wp-content/themes/robojob-pro/page-templates/template-home.php 在第111行
答案 0 :(得分:0)
由于这个问题已经超过一年了,所以无论如何我都会回答这个问题,希望能帮助一个人走下坡路。基本上do_shortcode
执行者是应该在这里显示的代码......我得到了这些完全相同的错误并通过纠正我的短代码标注来修复它。
我有:do_shortcode(['shortcode_callback']);
将其更改为:do_shortcode('[shortcode_callback]');
和错误再见。