A.shortcode 本质上是一个触发器,它会导致您执行一段代码functions.php
文件与现有代码的唯一真正区别在于,您没有立即打印结果,而是从函数返回结果。而且get_posts
不是执行多个循环的首选方法,如中所示the first paragraph in the codex. 更好地使用wp_query
直接地像这样:
add_shortcode (\'wpse312883\', \'wpse312883_query_shorcode\' );
function wpse312883_query_shorcode () {
$all_post_titles = "";
$args = (array(
"post_type"=>"book_pages",
"post_status"=>"publish",
"posts_per_page"=>-1
));
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
$all_post_titles .= get_the_title();
}
}
wp_reset_postdata();
return $all_post_titles;
}
否,如果您在GUI中的帖子内容中包含[wpse312883],您将获得帖子标题列表。您可能需要将一些html添加到
$all_post_titles
取决于结果的格式。