Wordpress 3.1.2永久链接破碎

时间:2011-05-16 05:17:07

标签: php wordpress permalinks

我有一个全新安装的WordPress 3.1.2(未升级但安装新鲜),不包含任何插件。

我的谷歌搜索似乎是一个相当常见的问题,但我找不到任何解决方案。

我有自定义分类和运行的自定义帖子类型,来自我的functions.php的代码:

register_post_type( 'product', array(
    'labels' => array(
        'name' => __( 'Products' ),
        'singular_name' => __( 'Product'),
        'add_new_item' => __( 'Add New Product'),
        'add_new' => __( 'Add a Product'),
        'edit_item' => __( 'Edit Product'),
        'new_item' => __( 'New Product'),
        'view_item' => __( 'View Product'),
        'search_items' => __( 'Search products' ),
        'not_found' => __( 'No products found' ),
        'not_found_in_trash' => __( 'No products found in Trash' )
    ),
    'public' => true,
    'supports' => array(
        'title',
        'editor'
    ),
    'has_archive' => true,
    'can_export' => true
));

register_taxonomy( 'product_category', 'product', array(
    'hierarchical' => true,
    'labels' => array(
        'name' => 'Product Categories',
        'singular_name' => 'Product Category',
        'search_items' =>  __( 'Search Product Categories' ),
        'all_items' => __( 'All Product Categories' ),
        'parent_item' => __( 'Parent Product Category' ),
        'parent_item_colon' => __( 'Parent Product Category:' ),
        'edit_item' => __( 'Edit Product Category' ), 
        'update_item' => __( 'Update Product Category' ),
        'add_new_item' => __( 'Add New Product Category' ),
        'new_item_name' => __( 'New Product Category Name' ),
        'menu_name' => __( 'Product Categories' ),
    ),
    'public' => true,
    'rewrite' => array(
        'hierarchical' => true
    )
));

问题在于,当我转到product_category存档页面时,例如http://example.com/dairy-industry,我得到了404.我已经尝试了一些gajillion修复,包括

  • rewrite代码
  • register_taxonomy个参数的每个组合
  • 重新保存固定链接
  • 关闭永久链接,保存,然后再打开
  • 以上,但首先从服务器删除.htaccess文件
  • 以上,但首先从wp_options表中删除rewrite_rules选项
  • 设置类别base和tag base选项(和空白)

我的主题中也没有$ wp_rewrite-> flush_rules()。

最令人沮丧的是,在我的修复程序的不同时间,并且没有我可以识别的模式,自定义分类存档页面将再次开始工作,但常规页面将开始给我404。他们从不在同一时间工作,我无法弄清楚哪些步骤可以重复地使一个或另一个工作。这似乎是完全随机的。

为了更有趣,当自定义分类存档页面正在工作时,其中一个(dairy-industry)重定向到类似命名但不同的slug({{ {1}})在给我404之前发帖。

我很高兴分享任何可能有帮助的代码,只要问一下。

任何人都可以帮助我弄清楚这个令人困惑的难题吗?

4 个答案:

答案 0 :(得分:0)

之前我遇到过一些问题。我发现如果你有一个自定义的帖子类型与你的一个页面slug同名,它可能会导致很大的问题!这可能是您需要考虑的事情。

我现在使用插件来创建自定义帖子类型,因为它内置了url结构的字段。此插件名为CMS Press

答案 1 :(得分:0)

我遇到过这个问题,只有在从3.1升级到3.1.2之后才出现(我们跳过了3.1.1)。对于自定义帖子类型以及已应用自定义重写规则的任何位置(例如自定义Feed链接),我都会收到404响应。

我设法让这个插件运行得相当好:

http://wordpress.org/extend/plugins/wcs-custom-permalinks-hotfix/

然而,我仍然不时地将这些页面变成404' - 我怀疑添加了一个新帖子。当发生这种情况时,我可以通过转到永久链接设置页面然后点击保存来再次使用它们。

请务必检查您的htaccess规则 - 该插件的网站提供了大量信息,并推荐了针对单站点和多站点设置的htaccess规则:

http://wpcodesnippets.info/blog/wcs-custom-permalinks-hotfix.html

答案 2 :(得分:0)

当我第一次遇到永久链接的404问题时,我很疯狂。它影响了我自己的所有网站和我管理的几个网站。数百人使用了我编码的修补程序功能......然后回应用户的各种特殊情况......我们完善了你提到的插件。

原始文章在这里: http://wpcodesnippets.info/blog/how-to-fix-the-wp-3-1-custom-permalinks-bug.html

我估计这个bug已经影响了数千个WP站点。但是,官方开发者拒绝在任何后续更新中解决它。幸运的是,该插件应该永久工作。

关于你偶尔发表的新帖404,我特别好奇你是否发现了罪魁祸首。这是一件可以尝试的事情。一旦发布新帖子,请在您通常不使用的浏览器中提取您的网站...并查看是否可以从那里单击指向新帖子的链接。

当然,在WP决定解决问题之前,修改或访问永久链接结构的旧插件需要较少的mod。

无论如何,我很高兴这个插件有所帮助。

答案 3 :(得分:0)

对我来说,帮助了这个答案:word-press-permalinks-broken-fro-category-and-tags-404-error-page-not-found

只需检查您的插件,如果您有“简单标签”或“Multipage Toolkit”编辑插件,并替换:

$wp_rewrite->flush_rules();

使用:

/* $wp_rewrite->flush_rules(); */

之后,转到您的permlink页面并更新它们......两次。作为一种魅力。