我创建了一个带有类别的自定义帖子类型,称为“故事”。有5个类别,其中之一是“培育”。
我想将所有带有“培育”类别的自定义“故事”帖子拉入页面,目前我的函数中包含此信息。php
function register_shortcodes() {
add_shortcode( 'stories', 'stories_function' );
}
add_action( 'init', 'register_shortcodes' );
function stories_function($atts) {
global $wp_query,
$post;
$atts = shortcode_atts( array(
'cat' => ''
), $atts );
$loop = new WP_Query( array(
'posts_per_page' => 3,
'post_type' => 'stories',
'orderby' => 'rand',
'order' => 'ASC',
'tax_query' => array( array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( sanitize_title( $atts['cat'] ) )
) )
) );
if( ! $loop->have_posts() ) {
return false;
}
while( $loop->have_posts() ) {
$loop->the_post();
echo the_title();
echo the_content();
}
wp_reset_postdata();
}
而我正在使用的简码是[story category =“ fostering”],但是什么也没有被拉进去,我在这种自定义帖子类型中使用了“ Fostering”类别来创建伪数据。
答案 0 :(得分:1)
在错过通过cat => Fostering
的情况下尝试使用此代码,并确保Fostering
是类别的子弹,否则请通过该类别的正确子弹
function register_shortcodes() {
add_shortcode( 'stories', 'stories_function' );
}
add_action( 'init', 'register_shortcodes' );
function stories_function($atts) {
global $wp_query,
$post;
$atts = shortcode_atts( array(
'cat' => 'fostering'
), $atts );
$loop = new WP_Query( array(
'posts_per_page' => 3,
'post_type' => 'stories',
'orderby' => 'rand',
'order' => 'ASC',
'tax_query' => array( array(
'taxonomy' => 'story_category',
'field' => 'slug',
'terms' => array( sanitize_title( $atts['cat'] ) )
) )
) );
if( ! $loop->have_posts() ) {
return false;
}
while( $loop->have_posts() ) {
$loop->the_post();
echo the_title();
echo the_content();
}
wp_reset_postdata();
}