简码问题

时间:2018-06-20 10:35:29

标签: wordpress shortcode wordpress-shortcode

我当前正在创建一个简码,以便在模板中将自定义分类术语显示为列表:

// First we create a function
function list_terms_forme_juridique_taxonomy( $atts ) {

// Inside the function we extract custom taxonomy parameter of our 
shortcode

extract( shortcode_atts( array(
'custom_taxonomy' => 'forme_juridique',
), 
                    $atts ) );

// arguments for function wp_list_categories
$args = array( 
taxonomy => $custom_taxonomy,
title_li => ''
);

// We wrap it in unordered list 
echo '<ul>'; 
echo wp_list_categories($args);
echo '</ul>';
}

// Add a shortcode that executes our function
add_shortcode( 'forme_juridique', 'list_terms_forme_juridique_taxonomy' 
);

我遇到了以下两个问题:

  • 简码(渲染)显示在页面顶部,而不是我在页面中放置的位置;
  • PHP控制台标记以下2个错误:
    • 使用未定义的恒定分类法-假定为“分类法”
    • 使用未定义的常量title_li-假定为'title_li'

任何帮助表示赞赏!

谢谢

1 个答案:

答案 0 :(得分:1)

首先,您的简码输出显示在页面顶部,因为您正在回显输出。您应该创建一个$ output变量,并使用您要显示的内容进行构建,然后将其返回。例如:

$output = '';
$output .= '<ul>'; 
$output .= wp_list_categories($args);
$output .= '</ul>';
return $output;

其次,由于没有在数组声明中引用键,因此您收到了错误消息。因此,PHP假定它们应该是先前定义的常量。

$args = array( 
    taxonomy => $custom_taxonomy,
    title_li => ''
);

应该是:

$args = array( 
    'taxonomy' => $custom_taxonomy,
    'title_li' => ''
);