我在Wordpress中创建了名为'consultants_category‘的自定义分类法,并将其分配给自定义帖子类型。现在我需要将这个分类法分配给具有特定php模板的页面- 'page-consultants.php‘。
Wordpress有分配自定义分类法'register_taxonomy_for_object_type‘(https://developer.wordpress.org/reference/functions/register_taxonomy_for_object_type/)的功能,但当我使用它时-我的分类法(自定义类别)显示在所有wp页面的后端,我不知道如何只使用特定页面模板的页面。
下面是我需要实现的粗略想法(获取所有wp页面,过滤所有页面,以获得仅具有特定php模板的页面,->仅分配自定义分类到过滤后的页面):
function add_taxonomies_to_pages() {
$pages = get_pages(
array(
'meta_key' => '_wp_page_template',
'meta_value' => 'page-consultants.php'
)
);
foreach($pages as $page){
register_taxonomy_for_object_type( 'consultants_category', 'pages');
}
}
add_action( 'init', 'add_taxonomies_to_pages' );都会很感谢你的帮助。谢谢。
发布于 2020-05-01 23:11:34
如果您注册了一个分类法,您可以选择分类应该注册到的帖子类型。https://codex.wordpress.org/Function_Reference/register_taxonomy
在您的情况下,这将是页面。这将影响所有页面,因为它们都是"page“类型。
如果你想从页面中分离出来,你可以创建另一个帖子类型。
使用您的函数,您可以添加另一个要注册到分类法的类型。此register_taxonomy_for_object_type用于将已注册的分类法添加到对象类型。我们讨论的是类型,所以分类法现在对所有页面都可用是正确的行为。
我不太确定我是否把你的问题弄对了。但如果您希望将页面模板分配给单个特定页面,您可以在后台编辑页面时,在页面属性中选择页面模板。
因此,您可以为只想要分类的页面创建另一个帖子类型,也可以制作页面模板来编辑单个页面的模板。我真的不知道你的问题是什么意思。
也许你可以写出更多的细节,你到底想做什么,以及你遇到了什么问题。
发布于 2020-05-02 01:44:02
如果我从您的问题和评论中正确理解,您正在寻找的是该自定义分类的归档:
最好复制层次结构中的下一个文件,而不是从空文件开始。如果您已经创建了一个archive.php,请创建一个名为category.php的副本并对其进行修改以满足您的设计需要。如果您没有archive.php文件,请使用主题的index.php副本作为起点。
摘自:https://developer.wordpress.org/themes/template-files-section/taxonomy-templates/
因此,您基本上需要获取archive.php,创建一个副本并将其命名为consultants_category.php -然后在该文件布局中以您需要的方式显示内容。使用archive.php文件作为起点,并根据需要进行修改。当您这样做时,它被预先构建为接受您的consultants_category分类法,确定它需要显示该分类法中的哪个特定术语,然后输出您指定的布局。
https://stackoverflow.com/questions/61543853
复制相似问题