WP_Query。按标签获取帖子

时间:2019-07-17 19:51:41

标签: wordpress tags

我需要按标签获取帖子。 我为此使用了这样的代码:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
    'type' => get_post_type(),
    'order' => 'ASC',
    'posts_per_page' => 8,
    'paged' => $paged,
    'tag'=> $cur_tag
);
$query = new WP_Query($args);
var_dump($args);
?>

<div class="blogs-grid">

    <?php
        $postIndex=0;

    ?>
    <?php if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?>

    <?php
        //some code.....
        $postIndex++;
    ?>

    <?php endwhile; ?>
</div>
<div class="pagination blog-pagination">
    <?php
    echo paginate_links( array(/*some param*/) );
    ?>
</div>
    <?php else: ?>
        <!-- no posts found -->
    <?php endif; ?>

var_dump返回tag = blog的此类数据

  

array(5){[“ type”] =>字符串(8)“ blogpost” [“ order”] =>字符串(3)   “ ASC” [“ posts_per_page”] => int(8)[“ paged”] => int(1)[“ tag”] =>   string(4)“ blog”}

并且不显示该标签的任何记录。在数据库中有4条记录。

当然,我可以将以下代码用于查看帖子:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

但是在此页面上,我需要显示每页等信息的替代数量。

我不明白为什么WP_Query()在我的代码中不起作用。你能帮我吗?

数组应包含哪些属性? 我当前的$ args无法正常工作:

$args = array(
    'type' => get_post_type(),
    'order' => 'ASC',
    'posts_per_page' => 8,
    'paged' => $paged,
    'tag'=> $cur_tag
);

1 个答案:

答案 0 :(得分:0)

我认为您的参数名称对于wp_query参数是错误的。 对于帖子类型,应使用“ post_type”而不是“ type”。 因此正确的args应该是:

$args = array(
    'post_type' => get_post_type(),
    'order' => 'ASC',
    'posts_per_page' => 8,
    'paged' => $paged,
    'tag'=> $cur_tag
);