私は自分のカスタム投稿タイプとカスタム投稿タイプを出力するためのショートコードを作りました。これまでのところすべてうまく機能していますが、投稿を追加しようとすると、ページに表示されるのは1つだけで、それ以上は表示されません。 posts_per_page
は3以上に設定されていますが、まだ何も設定されていません。
// Custom Post Type for Use Cases page slider
function create_post_type() {
register_post_type( 'use_cases',
array(
'labels' => array(
'name' => __( 'Use Cases' ),
'singular_name' => __( 'Use_Case' )
),
'public' => true,
'has_archive' => true,
)
);
}
add_action( 'init', 'create_post_type' );
// Shortcode for Use Cases caption
add_shortcode('Use_Case', 'use_case_shortcode_query');
function use_case_shortcode_query($atts, $content){
echo "working";
extract(shortcode_atts(array( // a few default values
'posts_per_page' => '3',
'post_type' => 'use_cases',
)
, $atts));
global $post;
$posts = new WP_Query(array( // a few default values
'posts_per_page' => '3',
'post_type' => 'use_cases'
));
//print_r($posts);
$output = '';
if ($posts->have_posts()):
while ($posts->have_posts()):
//echo var_dump($posts->the_post());
$posts->the_post();
$out = '<div class="use_case_boxes">
<h4>Name: <a href="'.get_permalink().'" title="' . get_the_title() . '">'.get_the_title() .'</a></h4>
<p class="Film_desc">'.get_the_content().'</p>';
// add here more...
$out .='</div>';
/* these arguments will be available from inside $content
get_permalink()
get_the_content()
get_the_category_list(', ')
get_the_title()
and custom fields
get_post_meta($post->ID, 'field_name', true);
*/
endwhile;
else:
return; // no posts found
endif;
wp_reset_query();
return html_entity_decode($out);
}
out変数を再初期化しているため、1つの製品しか表示されません。
// Custom Post Type for Use Cases page slider
function create_post_type() {
register_post_type( 'use_cases',
array(
'labels' => array(
'name' => __( 'Use Cases' ),
'singular_name' => __( 'Use_Case' )
),
'public' => true,
'has_archive' => true,
)
);
}
add_action( 'init', 'create_post_type' );
// Shortcode for Use Cases caption
add_shortcode('Use_Case', 'use_case_shortcode_query');
function use_case_shortcode_query($atts, $content){
echo "working";
extract(shortcode_atts(array( // a few default values
'posts_per_page' => '3',
'post_type' => 'use_cases',
)
, $atts));
global $post;
$posts = new WP_Query(array( // a few default values
'posts_per_page' => '3',
'post_type' => 'use_cases'
));
//print_r($posts);
$output = '';
$out = '';
if ($posts->have_posts()):
while ($posts->have_posts()):
//echo var_dump($posts->the_post());
$posts->the_post();
$out .= '<div class="use_case_boxes">
<h4>Name: <a href="'.get_permalink().'" title="' . get_the_title() . '">'.get_the_title() .'</a></h4>
<p class="Film_desc">'.get_the_content().'</p>';
// add here more...
$out .='</div>';
/* these arguments will be available from inside $content
get_permalink()
get_the_content()
get_the_category_list(', ')
get_the_title()
and custom fields
get_post_meta($post->ID, 'field_name', true);
*/
endwhile;
else:
return; // no posts found
endif;
wp_reset_query();
return html_entity_decode($out);
}