需要给特定php模板的页面分配自定义分类 - Wordpress

问题描述 投票:0回答:1

我在Wordpress中创建了名为'consultants_category'的自定义分类,并将其分配给自定义帖子类型。现在我需要将这个分类标准分配给特定的php模板-'page-consultants.php'。

Wordpress有一个叫做'register_taxonomy_for_object_type'的功能来分配自定义分类法 (https:/developer.wordpress.orgreferencefunctionsregister_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' );

将感激任何帮助。谢谢。

php wordpress custom-wordpress-pages custom-taxonomy
1个回答
0
投票

如果你注册一个分类法,你可以选择文章类型,该分类法应该被注册。https:/codex.wordpress.orgFunction_Referenceregister_taxonomy。

在你的情况下,这将是页面。这将影响所有的页面,因为它们都是 "页面 "类型。

如果你想把它从页面中分离出来,你可以创建另一个 Post Type。

通过你的函数,你可以添加另一个类型来注册分类法。这个 register_taxonomy_for_object_type 是将一个已经注册的分类法添加到一个对象类型中。我们采取的是关于类型,所以现在所有页面都可以使用分类法,这是正确的行为。

我不太确定我是否理解了你的问题......但是如果你想把一个页面模板分配给一个特定的页面,你可以在后台编辑页面时在页面属性中选择页面模板。

所以你可以为只想有分类的页面再创建一个帖子类型,也可以制作页面模板来编辑单个页面的模板。真的不知道你的问题中是怎么个意思。

也许你可以写得更详细一些,你到底想做什么,遇到了什么问题。


0
投票

如果我从你的问题和你的评论中理解正确的话,你要找的是那个自定义分类法的存档。

与其从空白文件开始,不如复制下一个层次结构中的文件(如果存在的话),这是一个好的做法。如果你已经创建了一个archive.php,请复制一个名为category.php的文件,并根据你的设计需求进行修改。如果您没有archive.php文件,请使用您的主题的index.php的副本作为起点。

取自: https:/developer.wordpress.orgthemestemplate-files-sectiontaxonomy-templates

所以你基本上会采取 archive.php,创建一个副本并命名为 consultants_category.php - 然后在该文件布局内,按照您需要的方式显示内容。 使用 archive.php 文件作为起点,并根据需要进行修改。 当你这样做的时候,它是预先建立的,以你的 consultants_category 分类法,确定它需要显示该分类法中的哪个具体术语,然后输出你指定的布局。

© www.soinside.com 2019 - 2024. All rights reserved.