передача значения нескольких родителей в короткий код
Мне нужно передать несколько значений в родительский атрибут wp_query. Однако я использую шорткод, поэтому, если я передаю одно значение, оно работает идеально, но если мне нужно отправить несколько значений, оно ломается, было бы отличным подарком к празднику, если бы some1 мог мне в этом помочь.
По умолчанию он работает с текущим идентификатором сообщения $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');
Я называю родителя этим способ [отображение_чилдс_множественный родитель="10,15,20"]
1 answers
Если при вызове шорткода вы передаете список родительских идентификаторов, разделенных запятыми, довольно легко превратить его в массив.
Например, используя [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
представляет собой массив переданных идентификаторов сообщений. Если был передан только один, это массив с одним элементом. Если вы передали несколько идентификаторов, то у вас будет массив с несколькими значениями.
Как вы строите свои запросы и двигаетесь дальше, полностью зависит от вас ...