当分类列表只有一篇文章时直接跳转到该文章页面
当分类下只有一篇文章时能不能直接跳转到该文章页面,答案是可以的,方法的搜索结果是一下的,区别是把判断当前页面是搜索结果页面改为是分类列表页面即可,修改后的代码如下。
把下面的代码添加到主题的functions.php文件:
function category_jump_page() { //定义函数
if(is_category()) { //判断是否是分类列表页面
global $wp_query; //定义全局变量
if ($wp_query->post_count == 1) { //判断文章数量是否是1
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); //如果是1则使用wordpress内置函数wp_redirect跳转
}
}
}
add_action('template_redirect', 'category_jump_page'); //把定义的函数使用上
如果要同时应用于搜索结果页面,可以把代码修改如下:
function category_jump_page() { //定义函数
if(is_category() || is_search()) { //判断是否是分类列表页面或者搜索结果页面
global $wp_query; //定义全局变量
if ($wp_query->post_count == 1) { //判断文章数量是否是1
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); //如果是1则使用wordpress内置函数wp_redirect跳转
}
}
}
add_action('template_redirect', 'category_jump_page'); //把定义的函数使用上
搜索结果只有一个时直接跳转到结果文章页面
在使用wordpress内置搜索框搜索,当搜索的结果只有一个时,不显示搜索结果页面而直接跳转到该结果页面。这种效果的好处是搜索结果是用户需要的,可以提高用户体验;坏处是搜索结果非用户需要的,不利于用户体验。
实现代码:
function search_jump_page() { //定义函数
if(is_search()) { //判断是否是搜索结果页面
global $wp_query; //定义全局变量
if ($wp_query->post_count == 1) { //判断搜索结果数量是否是1
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); //如果是1则使用wordpress内置函数wp_redirect跳转
}
}
}
add_action('template_redirect', 'search_jump_page'); //把定义的函数使用上
把以上代码添加到主题的functions.php文件即可