【问题标题】:Custom archive page with Timber RSS Feed Issue带有 Timber RSS Feed 问题的自定义存档页面
【发布时间】:2016-03-01 12:27:24
【问题描述】:

我使用Timber 和Route 方法在Wordpress 中构建了一个自定义存档页面。该页面运行良好,并显示了 Custom Post Types 的组合,但 {url}/feed 上的提要不存在。

注意:之前的答案已被编辑以消除令人困惑的附带问题。

// create CPT (x 3)
register_post_type($name, array(
  'label' => 'custom1',
  'public' => true,
  'capability_type' => 'page',
  'supports' => array( 'title', 'author', 'excerpt', 'revisions', 'thumbnail'),
  'taxonomies' => array('post_tag'),
  'has_archive' => true
));

// CPT route
Routes::map('test/filter/:filter', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' )
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
});

// paging CPT route
Routes::map('test/filter/:filter/page/:page', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' ),
      'paged' => intval($params['page'])
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
 });

【问题讨论】:

  • 在下面查看我的更新答案....
  • 永远不要使用query_posts

标签: php wordpress timber


【解决方案1】:

@sidonaldson:啊,现在我知道你在找什么了!是的,这发生在 WP 级别,而不是 Timber

add_action( 'pre_get_posts', function ( $query ) {
    if ( $query->is_main_query() && !is_admin() && is_post_type_archive('agency')) {
        $query->set( 'post_type', array('post', 'custom', 'custom2') );
    }
} );    

上一个答案....

@sidonaldson — 这是一个未经测试的答案,但可以尝试一下:

query_posts 基本上相当于 WordPress 的大锤,它会影响 RSS、分页和其他一切。这应该是可行的......

$posts_query = array(
    'post_type' => array('post', 'custom', 'custom' ),
    'tag__in' => $tag_array,
    'orderby' => 'date',
    'post_status' => 'publish',
    'paged' => $paged
);
// First let's get this set for pagination
query_posts($posts_query);
$context['posts'] = Timber::get_posts($posts_query);
$context['pagination'] = Timber::get_pagination();

// now let's use it to hit RSS
$post = new TimberPost('override_page_slug');
query_posts(array( 'p' => $post->ID ));
$context['post'] = $post;

Timber::render( 'page-override_page_slug.twig', $context );

【讨论】:

  • 将帖子重置到初始帖子列表之后会有所帮助,因为它不再显示损坏的提要。但我想我可以更具体一些;我希望feed 成为帖子列表,而不是覆盖页面。与timber 不同,听起来像是wordpress 的东西。谢谢
  • 我已经用一个新发现更新了这个问题。任何进一步的帮助都会很棒:)
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
相关资源
最近更新 更多