jazzman / custom-post-type
一个类,可以帮助您快速构建更高级的自定义文章类型。
Requires
- php: ^8.1
- jazzman/autoload-interface: ^0.3.1
- jazzman/pluralizer: ^1.0
Requires (Dev)
- jazzman/php-cs-fixer-rules: ^0.2.0
- jetbrains/phpstorm-attributes: ^1.0
- phpstan/extension-installer: ^1.3
- rector/rector: ^0.16
- roave/security-advisories: @dev
- roots/wordpress: ^6.2
- szepeviktor/phpstan-wordpress: ^1.3
- dev-master
- 3.3.5
- 3.3.4.1
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.3.2
- 2.3.1
- 2.3.0.1
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2
- 2.1
- 2.0
- 1.3.1
- 1.3
- 1.2
- v1.1
- v1.0.1
- v1.0
- dev-dependabot/github_actions/actions/checkout-4
- dev-dependabot/composer/rector/rector-tw-0.18
- dev-develop
- dev-Jazz-Man-patch-2
- dev-Jazz-Man-patch-1
- dev-dependabot/add-v2-config-file
This package is auto-updated.
Last update: 2024-09-04 16:19:29 UTC
README
安装
composer require jazzman/custom-post-type require_once ABSPATH.'vendor/autoload.php';
创建新的自定义文章类型
要创建文章类型,只需创建一个新的对象
use JazzMan\Post\CustomPostType; $books = new CustomPostType('book');
可选的第二个参数是文章类型的参数。有关可用选项,请参阅WordPress 代码库。
该类尽可能使用 WordPress 默认值。
要覆盖默认选项,只需将选项数组作为第二个参数传递。不一定需要传递所有选项,只需传递您想要添加/覆盖的选项即可,如下所示
$books = new CustomPostType('book', array( 'supports' => array('title', 'editor', 'thumbnail', 'comments') ));
有关所有可用选项的详细信息,请参阅WordPress 代码库。
现有文章类型
要处理现有文章类型,只需将文章类型名称传递给类构造函数
$blog = new CustomPostType('post');
添加分类法
您可以使用 register_taxonomy()
方法轻松添加分类法,如下所示
$books->registerTaxonomy('genres');
此方法接受两个参数,名称和选项。分类法名称是必需的,可以是字符串(分类法名称),或与文章类型相同的格式的名称数组
$books->registerTaxonomy('genres',array( 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'the_genre' ) ));
同样,选项可以以数组的形式可选地传递。有关所有可能选项的详细信息,请参阅WordPress 代码库。
现有分类法
您可以通过传递分类法名称通过 register_taxonomy
方法将现有分类法添加到文章类型。您只需要指定自定义分类法的选项 一次,在其首次注册时。
管理员编辑屏幕
过滤器
当您注册一个分类法时,它将 自动 添加到管理员编辑屏幕作为过滤器和一个列。
您可以使用 filters()
方法定义您想要显示的过滤器
$books->setFilters(array('genre'));
通过传递分类法名称数组,您可以选择显示的过滤器以及它们的顺序。如果您传递一个空数组,则管理员编辑屏幕上不会出现下拉过滤器。
列
该类提供了一些方法来帮助您修改管理员列。使用此类注册的分类法将自动添加到管理员编辑屏幕作为列。
您可以使用自己的自定义列添加任何您想要包含的值,例如,在我们的书籍文章类型中,我们将添加价格和评分的自定义字段。
您可以使用 setColumns()
方法通过传递一个数组来定义您希望在管理员编辑屏幕上显示的列,如下所示
$books->setColumns(array( 'cb' => '<input type="checkbox" />', 'title' => __('Title'), 'genre' => __('Genres'), 'price' => __('Price'), 'rating' => __('Rating'), 'date' => __('Date') ));
键定义了列的名称,值是该列显示的标签。以下列名称由类 自动 填充
- 通过对象注册的任何分类法
cb
批量编辑的复选框title
包含编辑链接的帖子标题author
帖子作者post_id
帖子的IDicon
帖子的缩略图
填充列
您需要创建一个函数来填充那些不会 自动 填充的列。
您可以通过 setPopulateColumns()
方法来实现,如下所示
$books->setPopulateColumns('column_name', function($column, $post) { // your code goes here… });
这样我们就可以像这样填充我们的价格列
$books->setPopulateColumns('price', function($column, $post) { echo "£" . get_post_meta($post->ID,'price',true); });
该方法将向函数传递两个变量
$column
- 列名称(不是标签)$post
- 当前帖子对象
这些被传递是为了帮助您正确地填充列。
菜单图标
Dashicons
随着WordPress 3.8的发布,出现了dashicons,这是一个可以用于自定义帖子类型的图标字体。要使用它,只需通过 setMenuIcon()
方法传递图标名称,如下所示
$books->setMenuIcon('dashicons-book-alt');
要查看图标列表和要使用的类名,请访问https://developer.wordpress.org/resource/dashicons/