marspress / post-type
WordPress 中启动新文章类型的实用程序包。
1.0
2021-12-08 21:37 UTC
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2024-09-09 03:39:40 UTC
README
安装
在您的 composer.json 中添加 composer 包 marspress/post-type,最小 dev-main 或运行 composer require marspress/post-type
资源
用法
创建新的文章类型
$myPostType = new \MarsPress\PostType\Type();
类型类接受 13 个参数,其中 4 个是必需的,9 个是可选的。
- 键(必需)(字符串)
- 文章类型的唯一标识符。
- 只能包含小写字母、连字符和下划线。
- 重要:键的长度不应超过 20 个字符。WordPress 中的文章类型键最长只能为 20 个字符。
- 单数标签(必需)(字符串)
- 文章类型的单数标签。
- 在管理菜单和区域中显示。
- 复数标签(必需)(字符串)
- 文章类型的单数标签。
- 在管理菜单和区域中显示。
- 支持(必需)(数组)
- 文章类型支持的 WordPress 功能数组。
- 资源:https://developer.wordpress.org/reference/functions/register_post_type/#supports
- 通常,最简单的文章类型支持
title、editor、thumbnail。虽然如果你的文章类型只使用自定义字段,你可能不需要editor
- 别名(可选)(字符串)
- 自定义文章类型的别名。
- 默认为
key。 - 应给出不带前后斜杠的值。例如,
test/sample将导致您的文章永久链接为/test/sample/
- 图标(可选)(字符串)
- 用于文章类型的 dashicon。
- 默认为
dashicons-admin-post - 资源:https://developer.wordpress.org/resource/dashicons/
- 菜单位置(可选)(整数)
- 有存档(可选)(布尔值)
- 是否为文章类型生成存档路由。
- 默认为
true。 - 例如,如果为真,将根据您的文章类型别名生成存档路由,存档路由将为
/test/sample/
- 公开(可选)(布尔值)
- 如果文章类型应该对公众可见。
- 默认为
true。 - 通常应始终为真,除非您专门使用文章类型进行管理用途。
- 显示在 REST 中(可选)(布尔值)
- 如果文章类型应通过 REST API 使用。
- 默认为
true。 - 重要:因为 Gutenberg 使用 REST API,所以如果您必须使用
editor支持,此值应为true。
- 覆盖(可选)(布尔值)
- 如果您的文章类型应覆盖现有文章类型。
- 默认为
false。 - 如果您需要修改任何核心 WordPress 文章类型或来自其他插件的文章类型,这很有用。
- 翻译界面(可选)(布尔值)
- 是否应在管理界面中翻译文章类型标签。
- 默认为
true。 - 如果您有多语言网站但希望管理区域保持英文,这很有用。
- 文本域(可选)(字符串)
- 用于翻译界面的文本域。
- 默认为
key。 - 仅当翻译界面设置为
true时使用。
注册自定义重写规则
您必须已经使用以下代码初始化了一个新的类:$myPostType = new \MarsPress\PostType\Type();
然后,您可以使用以下代码调用 add_rewrite_rule 方法:$myPostType->add_rewrite_rule();
重要提示:在注册新的重写规则后,需要刷新规则缓存。您可以在WordPress管理后台通过访问“设置”>“永久链接”,然后点击“保存更改”按钮(实际上您不需要进行任何更改)来完成此操作。
add_rewrite_rule 方法接受3个参数,2个必需,1个可选。
- 规则(必需)(字符串)
- 这应该是您的正则表达式规则,例如:
test/samples/(.*)/(.*)?$
- 这应该是您的正则表达式规则,例如:
- 匹配(必需)(字符串)
- 这应该是您的匹配URL查询。请注意不要将
$matches[]双引号,因为这会导致PHP警告,并使重写规则失败。 - 例如:
index.php?post_type=sample&sample=$matches[2]&sample_category=$matches[1] - 所有前端WordPress的匹配都将从
index.php开始。
- 这应该是您的匹配URL查询。请注意不要将
- 之后(可选)(字符串)
- 这设置了WordPress重写规则堆栈中的规则优先级。
- 默认为
top。 - 有效值是
top或bottom。
可用方法
您必须已经使用以下代码初始化了一个新的类:$myPostType = new \MarsPress\PostType\Type();
$myPostType->get_key();- 这将返回帖子类型的键。
- 这对于WordPress条件很有用,例如:
if( is_singular( $myPostType->get_key() ) ){}
$myPostType->get_object();- 这将返回WP_Post_Type对象。
- 资源: https://developer.wordpress.org/reference/classes/wp_post_type/