WordPress搜索结果中只有一篇文章时自动打开该文章
当我们搜索文章时,如果搜索结果中只有一篇文章,我们需要点击一下才能看到这篇文章,现在我们想让只有一篇文章时自动打开这篇文章,从而提高用户体验,实现方法:
打开当前模板文件夹里面的functions.php 文件,加入下面代码即可
/* WordPress搜索结果中只有一篇文章时自动打开该文章 */
add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
exit;
}
}
}
如果列表里只有一篇文章时,也想让用户访问该列表时自动打开该文章,打开当前模板里面的functions.php 文件,加入下面代码;
/* 分类列表里只有一篇文章时直接跳转到该文章具体页面 */
function stf_redirect_to_post(){
global $wp_query;
// If there is one post on archive page
if( is_archive() && $wp_query->post_count == 1 ){
// Setup post data
the_post();
// Get permalink
$post_url = get_permalink();
// Redirect to post page
wp_redirect( $post_url );
}
}
add_action('template_redirect', 'stf_redirect_to_post');
最近网站被人刷的搜索,百度收录了。别人通过百度点击进来,是一个无搜索内容的页面,现在我想让点击这个链接进来直接转向首页,综合上面两个段代码,终于成功了。
/* WordPress搜索结果中无内容时自动跳转到网站首页 */
add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 0 && $wp_query->max_num_pages == 0) {
wp_redirect( home_url() );
exit;
}
}
}
但是这段代码不能和第一段代码同时使用,因为里面有相同的参数,会出错。
经测试,把两段代码混合起来使用就正常了。也就是当搜索结果只有一条内容时,自动打开该条内容页面,搜索结果有N条内容时,显示正常搜索页面,搜索结果无内容时,刚自动转向首页。
代码如下:
/* WordPress搜索结果 */
add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 0 && $wp_query->max_num_pages == 0) {
wp_redirect( home_url() );//搜索结果没内容时,自动转向首页。
exit;
}
if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );//搜索结果只有一条时,自动打开该条内容。
exit;
}
}
}
声明:
1.本站主要是为了记录工作、学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
1.本站主要是为了记录工作、学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
THE END