通过在我的子主题的函数中添加以下代码,我成功地为引用创建了自定义分类法“Authors”。php:
/** * Add custom taxonomies */
function add_custom_taxonomies() {
// Add new "Authors" taxonomy to Posts
register_taxonomy(\'author\', \'post\', array(
\'hierarchical\' => true,
\'labels\' => array( \'name\' => _x( \'Authors\', \'taxonomy general name\' ),
\'singular_name\' => _x( \'author\', \'taxonomy singular name\' ),
\'search_items\' => __( \'Search Authors\' ),
\'all_items\' => __( \'All Authors\' ),
\'parent_item\' => __( \'Parent author\' ),
\'parent_item_colon\' => __( \'Parent author:\' ),
\'edit_item\' => __( \'Edit author\' ),
\'update_item\' => __( \'Update author\' ),
\'add_new_item\' => __( \'Add New author\' ),
\'new_item_name\' => __( \'New author Name\' ),
\'menu_name\' => __( \'Authors\' ), ),
\'rewrite\' => array(
\'slug\' => \'authors\',
\'with_front\' => false,
\'hierarchical\' => true
),
));
}
add_action( \'init\', \'add_custom_taxonomies\', 0 );
然后,我从我的WP管理员中添加了一个“作者”。接下来,我添加了一篇文章,作者是印度著名科学家阿卜杜勒·卡拉姆。这篇文章清楚地显示了超链接作者的名字(在父主题的single.php中添加了一些代码)。
接下来,我复制了父主题的存档。php给分类法作者。php列出所有“作者”。还创建了另一个存档副本。php给分类学作者AbdulKalam。php显示所有标记有作者AbdulKalam的帖子。
问题是,每当我浏览示例时,都会看到一个404错误页面。com/作者/或示例。com/authors/abdulkalam/。我冲过permalinks大约10-15次,但运气不好。
我做错了什么?
附言:我尝试过其他分类法名称,例如个性,但它们也不起作用!虽然“作者”可能已经存在,也可能不起作用,“作者”应该起作用。
SO网友:Milo
问题是:
register_taxonomy(\'author\', \'post\', array( //tax args here... ));
第一个参数是分类名称,您已将其设置为
author
. 如果没有显式声明值,WordPress将使用该值作为分类查询变量。当查询此分类时,
author
用于将请求的术语slug传递给查询。
问题是WordPress已经使用author
通过用户ID查询用户。访问这些术语页会导致WordPress尝试查询用户ID为0的帖子,而用户ID始终为404(任何非数字字符串都被解释为无效,并变为整数0)。
将名称更改为其他名称:
register_taxonomy(\'something_unique\', \'post\', array( //tax args here... ));
或者,显式设置
query_var
除了
author
.
register_taxonomy(\'author\', \'post\', array(
\'query_var\' => \'something_unique\',
// the rest of your tax args...
));