我已经到处寻找这个问题的解决方案,如果我找错了,请原谅我。。
我有一页“Review“(段塞)”review“”。我有许多自定义帖子类型,其中有一个名为asset_status.我希望能够转到评论页面的URL,并显示最旧的自定义帖子waiting 作为asset_status 自定义字段。理想情况下,我还希望能够有“Prev”/“Next”按钮,允许用户使用该字段值转到第二/第三/第四个最旧的帖子。
我已尝试通过pre_get_posts
和parse_request
挂钩。我在以下方面取得了一些成功parse_request
, 但在让网站使用single.php
模板,即使我尝试通过template_include
钩子(尽管我想知道is_page( \'review\' )
在该阶段失败,因为我覆盖了前面的查询。
add_filter( \'parse_request\', function( $query ) {
// triggered also in admin pages
if ( is_admin() )
return $query;
// you should check also for page slug, because when pretty permalink are active
// WordPress use \'pagename\' query vars, not \'page_id\'
$id = isset($query->query_vars[\'page_id\']) && (int) $query->query_vars[\'page_id\'] === 230;
// remember to replace "slug" with real page slug
$name = isset($query->query_vars[\'pagename\']) && $query->query_vars[\'pagename\'] === \'review\';
if ( ( $id || $name ) && !isset( $query->query_vars[\'error\'] ) ) {
$query->query_vars = array(
\'post_type\' => \'asset\' ,
\'meta_key\' => \'asset_status\' ,
\'meta_value\' => \'waiting\' ,
\'post_status\' => \'publish\' ,
\'posts_per_archive_page\' => 1 ,
\'orderby\' => \'date\' ,
\'order\' => \'ASC\' ,
\'paged\' => ( get_query_var(\'paged\') ? get_query_var(\'paged\') : 1 )
);
}
return $query;
});
add_filter( \'template_include\', function( $template ){
if ( is_page( \'review\' ) ) {
die(\'THIS IS THE REVIEW PAGE\');
$new_template = locate_template( array( \'single.php\' ) );
if ( \'\' != $new_template )
return $new_template;
}
return $template;
}, 99 );
如有任何建议、指示或建议,将不胜感激。