【问题标题】:WP_Query. Get posts by tagWP_查询。按标签获取帖子
【发布时间】:2019-11-26 17:19:18
【问题描述】:

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

<?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"]=> string(8) "blogpost" ["order"]=> string(3) "ASC" ["posts_per_page"]=> int(8) ["paged"]=> int(1) ["tag"]=> 字符串(4)“博客”}

并且不显示此标签的任何记录。在数据库中存在 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
);

【问题讨论】:

    标签: wordpress tags


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      相关资源
      最近更新 更多