如何删除不需要的页面,如存档、搜索等?

时间:2013-04-15 作者:Eystein

默认情况下,WordPress会推出一系列我不想要或不需要的页面—归档、作者、博客、每月、最近的帖子、类别、评论、附件、税收、搜索、搜索结果,可能还有一些我错过的其他页面。

大多数时候,我都在建立常规的broshure网站,除了一些相当静态的页面外,什么都不需要。我如何去掉所有其他页面?有没有插件可以做到这一点?我必须在中设置十几个重定向吗。htaccess?我尝试过搜索,但我找到的只是如何隐藏页面的部分内容,或者自定义网站地图以隐藏搜索。但我根本不想要这些页面,所以即使输入直接URL也不应该起作用。

5 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以通过parse_query 措施:

function wpa_parse_query( $query ){
    if( ! is_admin() && ! $query->is_page() ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action( \'parse_query\', \'wpa_parse_query\' );
如果它不是管理屏幕或页面查询,它将重定向。您可以在下面看到将删除的所有类型的页面Conditional Tags 抄本中的页面。

SO网友:Johannes Pille

Joost de Valk的WordPress SEO plugin 能够禁用您提到的大部分(如果不是全部)存档:

enter image description here

SO网友:Pons

您可以使用另一个小脚本,而无需添加任何插件。有一个帖子here 以及要添加到索引中的代码。您的主题是:

if(is_archive()) {
    // force 404
    $wp_query->set_404();
    status_header( 404 );
    nocache_headers();
    include("404.php");
    die;
}
希望你觉得有用。

SO网友:Eystein

对于任何想知道的人,我最终使用了。htaccess 301重定向。

# Redirect useless pages
Options +FollowSymlinks
RewriteEngine on
RedirectMatch 301 ^/portfolio/.*$ /gallery/
RedirectMatch 301 ^/author/.*$ /
RedirectMatch 301 ^/category/.*$ /
RedirectMatch 301 ^/tag/.*$ /
RedirectMatch 301 ^/20.*$ /
blogpost存档^/20.*$ 这并不理想,但现在必须这样做。也不知道我可能错过了其他哪些页面。

SO网友:FFrewin

也可以使用template\\u重定向挂钩来实现。

您可以检查每种类型的存档页,或;禁用(&Q);他们一起。

返回404错误或重定向到另一页,我更喜欢404方法functions.php :

/* Disable archives pages */
add_action(\'template_redirect\', \'my_disable_archives_function\');

function my_disable_archives_function()
{
  /* Conditional checks examples:
      is_category() 
      is_tag()
      is_date()
      is_author()
      is_tax()
      is_search() ... */

    // Return a 404 for all archive types, except the my_custom_post_type archive.
    $post_types = array(\'my_custom_post_type\');

  if ( (is_archive() && !is_post_type_archive( $post_types )) )
  {
      global $wp_query;
      $wp_query->set_404();
      status_header(404);
  }
}

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W