Wp_queryのparent属性にいくつかの値を渡す必要があります。しかし、私はショートコードを使用しているので、単一の値を渡すと完璧に機能しますが、複数の値を送信する必要がある場合は壊れてしまいます。
デフォルトでは、現在の投稿ID $ thePostIDで動作します。ただし、親を取得する必要がある場合は、parent属性を使用します。私のコードを見てください。
function andrew_child_loop_shortcode_new ( $atts ) {
global $post; $thePostID = $post->ID;
extract ( shortcode_atts (array (
'posts' => 20,
'parent' => $thePostID,
'exclude' => array(0)
), $atts ) );
///////$atts[ 'parent' ] = explode( "," $atts[ 'parent' ] );
///////extract( $atts );
$output = '<div class="clear"></div>';
$args = array(
'orderby' => 'menu_order',
'order' => 'ASC',
'post_parent' => $parent,
'post_type' => 'page',
'post__not_in' => array($exclude),
'posts_per_page' => $posts
);
wp_reset_query();
$i=0;
$andrew3_query = new WP_Query( $args );
$output .= '<div id="multiple-childs" class="grid_8">';
while ( $andrew3_query->have_posts()) { $i++ ; $andrew3_query->the_post();
$output .= '<div id="child-results-multiple" class="grid_2 omega result-'.$i.'">';
if(has_post_thumbnail()):;
$output .= '<a href="'.
get_permalink().
'" a>'.
get_the_post_thumbnail(get_the_ID(), 'blog-post-carousel').
'</a>';
else :;
$output .= '<a href="'.
get_permalink().
'" a>'.
'<img src="'.
get_bloginfo( "template_url" ).
'/images/theme/no-image.png" width=115 height=115> </a>';
endif;
$output .=
'<h4>'.
get_the_title().
'</h4>'.
'<p>'.
get_the_excerpt().
'</p>'.
'</div>';
}
wp_reset_query();
$output .= '</div>';
return $output;
}
add_shortcode('display_childs_multiple', 'andrew_child_loop_shortcode_new');
私はこのように親を呼んでいます[display_childs_multiple parent = "10,15,20"]
ショートコードを呼び出すときに親IDのカンマ区切りのリストを渡す場合は、これを配列に変換するのはかなり簡単です。
たとえば、[scname parent="5,10,15"]
を使用します。
function andrew_child_loop_shortcode_new ( $atts ) {
global $post; $thePostID = $post->ID;
$atts = shortcode_atts( array(
'posts' => 20,
'parent' => $thePostID
), $atts );
// Turn the 'parent' parameter into an array
$atts[ 'parent' ] = explode( ",", $atts[ 'parent' ] );
extract( $atts );
// ... now do whatever you were going to do ...
}
$parent
変数は、渡された投稿IDの配列です。1つだけが渡された場合は、単一の要素を持つ配列になります。複数のIDを渡した場合は、複数の値を持つ配列があります。
どのようにしてクエリを構築し、ここから先へ進むかは、完全にあなた次第です...