重定向至Wordpress中最新的自定义文章类型诊断树



在我的Wordpress网站上,我正在尝试创建一个链接,http://url.com/episode/?latest重定向到最新的"剧集"(自定义帖子类型(。我已经将这个代码片段修改为:

//* Link to Latest Episode
function wpa_latest_episode_redirect( $request ){
if( isset( $_GET['latest'] ) ){
$latest = new WP_Query( array(
            'taxonomy' => 'episode',
'posts_per_page' => 1
) );
if( $latest->have_posts() ){
wp_redirect( get_permalink( $latest->post->ID ) );
exit;
}
}
}
add_action( 'parse_request', 'wpa_latest_episode_redirect' );

然而,我得到了这个错误:

syntax error, unexpected ''taxonomy'' (T_CONSTANT_ENCAPSED_STRING), expecting ')'

当我查看文档时,我认为错误是因为"taxonomy"应该是像一样的分类名称

$latest = new WP_Query( array(
'videos' => 'episode',
'posts_per_page' => 1
) );

但是它的

自版本3.1以来已弃用,支持"tax_query">

所以你应该使用

$latest = new WP_Query( array(
'tax_query' => array(
'taxonomy' => 'episode'
),
'posts_per_page' => 1
) );

然而,既然你说"情节"不是一个分类法,而是一个自定义的post_type,也许这对你有用:

$latest = new WP_Query( array(
'post_type' => 'episode',
'posts_per_page' => 1
) );

谢谢,帮助很大!我能够使用它,这很有效,因为我将类别应用于自定义帖子类型:

//* Link to Latest in Category
function wpa_latest_in_category_redirect( $request ){
if( isset( $_GET['latest'] )
&& isset( $request->query_vars['category_name'] ) ){
$latest = new WP_Query( array(
'category_name' => $request->query_vars['category_name'],
'post_type'      => array( 'episode' ),
'posts_per_page' => 1
) );
if( $latest->have_posts() ){
wp_redirect( get_permalink( $latest->post->ID ) );
exit;
}
}
}
add_action( 'parse_request', 'wpa_latest_in_category_redirect' );

最新更新