为什么我的自定义帖子没有显示(404错误/找不到页面)

时间:2013-02-13 作者:Abs

我刚刚安装了一个新的wp安装。我在“二十一二”主题的基础上创建了一个新的儿童主题。在子主题函数中。php,我创建了一个名为“新闻”的新自定义帖子。我在“新闻”中添加了两篇帖子,当我查看其中任何一篇时,都会出现“未找到页面”错误。请参见屏幕截图:http://pasteboard.co/dtIOK6g.jpg

我希望帖子能显示出来,但我得到的是404页。为什么?

Update (澄清我的问题):从安装开始,我只做了很少的工作,除了以下几点:

添加了一个新的子主题(共212个)

  • 我已经应用了新的子主题
  • 我通过更新创建功能创建了一个新的自定义帖子。php的子主题,并在此代码中加载(http://pastebin.com/DKny8QH1)
  • 在WP admin中,我在news下创建了2个新帖子(上面创建的新自定义帖子)
  • 如果我尝试访问帖子,我会得到404(如上面的屏幕截图所示)。但是,我可以访问正常创建的帖子
  • 谢谢

    RESOLVED: 这真的很奇怪,但我已经解决了。似乎我需要为我的永久链接设置重新选择“帖子名称”选项,即使它已经被选中。再次选择此选项解决了我的问题。对不起,有什么困惑。

    我去了“设置”>“永久链接”

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

    解决:这真的很奇怪,但我已经解决了。似乎我需要为我的永久链接设置重新选择“帖子名称”选项,即使它已经被选中。再次选择此选项解决了我的问题。对不起,有什么困惑。

    我去了“设置”>“永久链接”

    SO网友:EAMann

    实际上,这是一个常见的问题。

    当您添加自定义帖子类型时,您也在向WordPress注册一个新的重写规则<然而,为了让WordPress识别它们,你必须在注册后刷新重写规则。

    使用插件,可以通过将CPT注册与init (因此它是可用的)和插件的激活挂钩。然后,在插件激活挂钩内,手动调用flush_rewrite_rules() 重置内容。

    由于没有类似的主题激活/停用设置,因此可以使用选项设置加载主题的时间。例如:

    function my_theme_register_cpt() {
        $args = array(
            // ... your initialization stuff
        );
    
        register_post_type( \'news\', $news );
    }
    add_action( \'init\', \'my_theme_register_cpt\' );
    
    function my_theme_deactivate() {
        delete_option( \'my_theme_active\' );
    }
    add_action( \'switch_theme\', \'my_theme_deactivation\' );
    
    $is_active = get_option( \'my_theme_active\' );
    if ( \'set\' !== $check ) {
        my_theme_register_cpt();
        flush_rewrite_rules();
    
        add_option( \'my_theme_active\', \'set\', \'\', \'no\' );
    }
    
    简而言之。此代码将:

    在上注册您的CPTinit 像往常一样

  • 当您更改主题时,它会清除一个表示您的主题处于活动状态的存储值。如果您的主题处于活动状态,并且未设置此存储值,则主题将触发您的CPT注册码(再次)并立即刷新重写规则。然后设置存储值,使其不会触发flush_rewrite_rules() 多次
  • 结束

    相关推荐

    基于页面本身创建‘Posts Page’循环

    设置Settings -> Reading -> Posts Page 设置为我的“新闻”页面,并且home.php 模板已填充帖子。。。太棒了但是,我还希望能够创建另一个循环(即使WP_Query 如果需要),其中包含我指定的实际页面Posts Page 是的。每当我尝试实例化此循环时,它都会返回大量帖子,而不是我请求的页面。下面是我的代码,请将args与请求SQL进行比较:<?php $page = new WP_Query(array(\'post_typ