木材:如何在archive.php

时间:2019-01-18 03:58:43

标签: wordpress-theming timber

我将Timber用于Wordpress,当我在archive.php中使用自定义查询来获取自定义帖子类型的帖子时,它将返回多种帖子类型的帖子。

我在page.php中尝试了完全相同的查询,并且运行良好。

这是我正在使用的查询:

global $paged;
    if (!isset($paged) || !$paged){
        $paged = 1;
    }
$args = array(
    'post_type' => 'horse',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => 20,
    'paged' => $paged
);
$context['horses'] = new Timber\PostQuery( $args );

我希望返回所有类型为“马”的帖子,但其他类型的帖子也会混入其中。

有什么想法可能会发生这种情况吗?


我不确定这是否相关,但我也将其添加到了StarterSite类内部的functions.php中,以便将我的自定义帖子类型添加到存档页面:

function namespace_add_custom_types( $query ) {
    if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {

        // Get all your post types
        $post_types = get_post_types();

        $query->set( 'post_type', $post_types );
        return $query;
    }
 }

这已添加到名为__construct的现有函数中:

add_filter( 'pre_get_posts', array($this, 'namespace_add_custom_types') );

1 个答案:

答案 0 :(得分:1)

在树枝文件中如何称呼它?

{% for post in horses %}
{{ post.name }}
{% endfor %}

此外,您确定帖子类型的名称是马而不是马吗?如果“ post_type”中包含错误的帖子类型名称,它将显示所有帖子类型。