我想获取wordpress中的所有帖子,其中的id在参数中传递 http://localhost/wordpres/的?PID = 181,109,5,1
我的front-page.php有以下代码
<?php while (have_posts()) : the_post(); ?>
<?php
if ('posts' == get_option('show_on_front')) {
get_template_part('content', 'posts');
} else {
get_template_part('content', 'page');
}
// If comments are open or we have at least one comment, load up the comment template
if (comments_open() || '0' != get_comments_number()) :
comments_template();
endif;
?>
<?php endwhile;} // end of the loop. ?>
我尝试 query_posts('p = 181'); 与 http://localhost/wordpres/?pid=109 进行单一帖子;它工作正常。 但是我无法理清如何为query_posts提供多个通过url传递的post id。需要帮助。
答案 0 :(得分:0)
您可以尝试使用上面代码中的代码来解决您的问题。
<?php
$all_posts = sanitize_text_field($_GET['pid']);
if(!empty($all_posts)){
$all_posts = explode(',', $all_posts);
}else{
$all_posts = array();
}
$args = array(
'post_type' => 'post',
'post__in' => $all_posts
);
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part('content', 'posts');
if (comments_open() || '0' != get_comments_number()) :
comments_template();
endif;
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {
echo "no posts found";
}
?>
答案 1 :(得分:0)
我是通过使用以下代码
完成的$thePostIdArray = explode(',', $_GET['pid']);
$args = array(
'post__in' => $thePostIdArray
);
query_posts($args);?>
<?php while (have_posts()) : the_post(); ?>
<?php
if ('posts' == get_option('show_on_front')) {
get_template_part('content', 'posts');
} else {
get_template_part('content', 'page');
}