我正在尝试创建一个显示我的帖子类型的短代码:advanced_topic但是想要添加类别参数,例如
[高级主题类别="假释"]
仅显示该类别下的主题。
这是我到目前为止的代码,但我觉得我错过了一些因为它不起作用的东西...任何帮助都表示赞赏。谢谢。
function display_advanced_topics(){
extract( shortcode_atts( array( 'category_name' => 'criminal-records' ), $args ) ); // $categoryName variable will be initialized to 'criminal-records' if the shortcode is missing the 'category' parameter
$string = '';
$args = array(
'post_type' => 'advanced_topic',
'posts_per_page' => -1,
'post_status' => 'publish',
'category_name' => $categoryName
);
$query = new WP_Query( $args );
if( $query->have_posts() ){
$string .= '<div class="advanced-topics">';
while( $query->have_posts() ){
$query->the_post();
$string .=
'<div class="row advanced-topic">'
.'<div class="content">
<div class="title"><?php get_the_title(); ?></div>
</div>'
.'</div>';
}
$string .= '</div>';
}
wp_reset_postdata();
return $string;
}
add_shortcode( 'advanced-topics', 'display_advanced_topics' );
答案 0 :(得分:0)
总是很好用
error_reporting(E_ALL);
ini_set('display_error', 1);
错误的引号
ob_start();
get_the_title()
$the_title = ob_get_clean();
$string .=
'<div class="row advanced-topic">'
.'<div class="content">
<div class="title">'. $the_title .'</div>
</div>'
.'</div>';
如果get_the_title()
打印结果,则必须使用ob_get_clean