显示ID通过网址

时间:2017-04-13 12:14:02

标签: php html wordpress

我想获取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。需要帮助。

2 个答案:

答案 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');
                }