spock / shadow-taxonomies
用于在CPT之间创建关系的库
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-14 10:35:09 UTC
README
用于将文章类型与其他文章类型相关联。
简介
在WordPress中,最难的事情之一就是创建两个不同文章类型之间的关系。通常,这是通过在文章元信息中保存关于这些关系的详细信息来完成的。然而,这会导致你的代码中有许多元查询,而元查询通常是WordPress中最差、最费时的查询之一。
元数据也可能很难保持同步。例如,当文章被删除时,你保存在单独的文章类型中的文章元信息会发生什么?
什么是影子分类法。
影子分类法是一种自定义WordPress分类法,它被创建来反映特定的文章类型。因此,每当在该文章类型中创建、更新或删除文章时,相关的影子分类法术语也会被创建、更新和删除。
此外,通过使用分类法,我们可以在文章编辑屏幕上免费获得一个漂亮的复选框UI来链接文章。
用法
第一步
创建影子分类法。
add_action( 'init', function() { register_taxonomy( 'services-tax', 'staff-cpt', array( 'label' => __( 'Services', 'text-domain' ), 'rewrite' => false, 'show_tagcloud' => false, 'hierarchical' => true, ) ); // We will make our connection here in the next step. });
这里我们只是创建了一个正常的自定义分类法。在我们的示例中,我们正在创建一个分类法来反映我们已完成的CPT(内容类型)服务。因此,作为一个惯例,我将我的影子分类法命名为'services-tax'。
此外,因为我想要将服务与另一个名为Staff的文章类型相关联,所以我已注册了这个自定义分类法,以便它出现在Staff CPT文章编辑屏幕上。
最后,我没有使这个分类法公开
。那是因为我不想任何人随意更改这个分类法的术语。我想让影子分类法库处理创建、更新和删除影子分类法术语。这样,我可以确保我的影子分类法与其相关联的文章类型保持正确同步。
第二步
使用影子分类法库API创建关联。
\Shadow_Taxonomy\Core\create_relationship( 'service-cpt', 'service-tax' );
这一行就是创建影子分类法链接的全部内容,这样这个库就可以介入并接管影子分类法的管理。第一个参数是自定义文章类型名称,第二个参数是新建的影子分类法名称。
这一行应紧跟在第一步中的register_taxonomy
调用之后。
使用助手合并步骤
使用助手register_shadow_taxonomy
注册影子分类法分类法并建立关系。(合并上述两步)。
\Shadow_Taxonomy\Core\register_shadow_taxonomy( [ 'movies' ], [ 'actor' ], '_actor', [ 'label' => 'Actors', 'rewrite' => false, 'show_tagcloud' => false, 'show_ui' => false, 'hierarchical' => false, 'show_in_menu' => false, 'meta_box_cb' => false, 'show_in_rest' => true, ] );
API
get_the_posts( $post_id, $taxonomy, $cpt )
get_the_posts
是库提供的辅助方法。它使得获取相关文章变得简单。返回一个包含WP Post对象的数组或如果没有找到相关文章则返回false。
post_id (int)
必需 - 你想要查找关联的帖子ID。taxonomy (string)
必需 - 影子分类法别名。cpt (string)
必需 - 相关的自定义文章类型别名。
此库还包含一些WP_CLI脚本来帮助您管理您的影子分类法。其中最重要的一个是在此库应用于已包含大量文章的现有站点时非常有用。以下WP_CLI脚本将遍历并创建所有需要的影子分类法术语。
wp shadow sync --cpt=cpt_slug --tax=taxonomy_slug // Will sync all of the input custom post types by creating terms in the input taxonomy. wp shadow sync --cpt=cpt_slug --tax=taxonomy_slug --dry-run // Will output a table of the changes the script will make without actually making any changes. wp shadow sync --cpt=cpt_slug --tax=taxonomy_slug --verbose // Will sync the terms but also output more logs as it process your data.
--cpt (字符串)
必填 - 您想要阴影的帖子类型。--tax (字符串)
必填 - 用作阴影的分类法。--dry-run (标志)
可选 - 不会创建术语,而是列出将要进行的更改。--verbose (标志)
选项 - 会导致脚本在运行时输出额外的日志。