我不认为get_pages
我相信这是一个合适的用途get_posts
是你需要的。而且wp_redirect
如果只是将其放入主题模板文件中,则不会起作用IF 邮件头已发送。最好从您的功能内部执行。php,如下例所示。
我们正在抓住template
_重定向在向用户显示演示文稿之前要触发的最后一个操作(然后是get\\u标头等)。
然后检查查询变量是否试图检索属于我们的分类法的术语名称(在您的情况下artists
) 如果这种情况再次出现true
我们获取第一篇帖子,它的永久链接,然后将用户重定向到第一篇帖子。
解决方案:(放在functions.php文件中)
add_action(\'template_redirect\', \'first_post\');
function first_post(){
global $wp_query;
global $post;
if ( $wp_query->query_vars[\'artists\'] === get_query_var(\'artists\') ) {
$args = array(
\'post_type\' => \'artworks\', // change this to the post type you registered
\'posts_per_page\' => 1,
\'tax_query\' => array(
array(
\'taxonomy\' => \'artists\',
\'field\' => \'slug\',
\'terms\' => get_query_var( \'artists\' )
)
)
);
$first_post = get_posts($args);
foreach($first_post as $post) : setup_postdata($post);
wp_redirect(get_permalink($post->ID));
exit;
endforeach;
}//end if-block conditional
}
这种方法的优点是可以保持链接结构的外观,例如;
✔;http://www.example.com/artists/michael-aakhus/
✔;http://www.example.com/artists/jane-abrams/
等。。。
而不是您的链接显示为,
⨯;http://www.example.com/artists/michael-aakhus/%postname%
⨯;http://www.example.com/artists/jane-abrams/%postname%
等。。。
当然,在用户被重定向之前,地址栏将显示带有完整帖子名称的相应URL。