自定义帖子类型的新条目在单个视图上生成404

时间:2018-04-20 作者:Addison Hall

我已经使用CPT UI在一个房地产网站上创建了一些自定义帖子类型,其中一种叫做“团队”。直到最近,一切都很顺利。。。旧的团队条目按预期显示在列表/归档视图和单个视图中。然而,我们最近添加了一个新的团队成员条目,发现只有单个视图会导致“未找到页面”错误。经过更多测试,结果表明,“团队”post类型的任何新条目都只会在单个视图中导致错误——它们会在存档视图中弹出。

Just to be clear: 旧的团队条目在存档和单个视图中都会按应有的方式显示。任何新的团队条目都会显示在存档视图中,但会导致单个视图中出现404

我尝试使用普通的永久链接设置、flush\\u rewrite\\u rules()重新保存永久链接设置,并检查了是否存在任何段塞冲突。我完全被难住了。

UPDATE: 按照建议进行一些调试后(谢谢!)我想我已经发现了问题。。。页面请求正在查询变量中使用新条目中不存在的旧元键。不知何故,WordPress在内部使用了meta键\'agent_last_name\' 应在何时使用\'agent_alpha_name\'. 我想我需要一种方法来强制刷新?

1 个回复
SO网友:Addison Hall

所以我深入挖掘了我的孩子主题,发现我其实是罪魁祸首。。。在早期的某个时候,我编写了一个函数,使用pre_get_posts 在上强制自定义排序顺序team 自定义帖子类型。以下是我发现的隐藏内容:

add_action(\'pre_get_posts\', \'gpc_agent_pre_get_posts\');
function gpc_agent_pre_get_posts( $query ) {
    // do not modify queries in the admin
    if( is_admin() ) {
        return $query;
    }
    // only modify queries for \'agent\' post type
    if( isset( $query->query_vars[\'post_type\'] ) && $query->query_vars[\'post_type\'] === \'team\' ) {
        $query->set( \'orderby\', \'meta_value\' ); 
        $query->set( \'meta_key\', \'agent_last_name\' );    
        $query->set( \'order\', \'ASC\' ); 
    }
    // return
    return $query;
}
我把它去掉了,一切都很好。

结束

相关推荐