我在WordPress中创建了一个名为“consultants_category”的自定义分类,并将其分配给自定义帖子类型。现在我需要将此分类分配给具有特定php模板的页面-“page-consultants.php”。
WordPress有功能来分配自定义分类称为'注册分类为对象类型'(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' );
希望你能帮忙。谢谢。
3条答案
按热度按时间n6lpvg4x1#
如果注册分类,则可以选择分类应注册到的帖子类型。https://codex.wordpress.org/Function_Reference/register_taxonomy
在您的情况下,这将是页面。这将影响所有页面,因为它们都是“页面”类型。
您可以创建另一个帖子类型,如果你想有从页面分离。
使用您的函数,您可以添加另一个要注册到分类的类型。此register_taxonomy_for_object_type用于将已注册的分类添加到对象类型。我们正在讨论类型,因此分类现在可用于所有页是正确的行为。
我不太确定我是否理解对了你的问题...但是如果你想给一个特定的页面分配一个页面模板,你可以在后台编辑页面时在页面属性中选择页面模板。
所以你可以为你只想有一个分类的页面创建另一个帖子类型,或者你可以制作页面模板来编辑单个页面的模板。不知道这在你的问题中是什么意思。
也许你可以写更多的细节,你到底是什么试图做什么,你遇到了什么问题。
bfhwhh0e2#
如果我从您的问题和评论中正确理解的话,您要查找的是该自定义分类的归档:
最好不要从一个空文件开始,而是复制层次结构中的下一个文件(如果存在的话)。如果您已经创建了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
分类,确定它需要显示该分类中的哪个特定术语,然后输出您指定的布局。zaq34kh63#