yann-soaz / ys_cpt
代码用于向 WordPress 主题或插件添加自定义文章类型
dev-master
2023-05-31 07:09 UTC
This package is auto-updated.
Last update: 2024-09-30 01:50:18 UTC
README
WordPress 插件,可轻松生成自定义内容类型
安装
使用 composer 在您的主题或插件中安装项目。
composer require yann-soaz/ys_cpt
如果尚未这样做,请导入 autoload
require('vendor/autoload.php');
使用
调用管理器
$cpt = YS_PostTypeManager::get();
创建内容类型
基本
$cpt->addPostType('projets')
高级
生成标签(法语)
$projets = ($cpt->addPostType('projets')) ->generateLabels('projet');
生成带有非“s”结尾的复数标签
$cadeaux = ($cpt->addPostType('cadeau')) ->generateLabels('cadeau', 'cadeaux');
生成女性标签
$eaux = ($cpt->addPostType('eaux')) ->generateLabels('eau', 'eaux', true);
手动输入一个或多个标签
$projets = ($cpt->addPostType('eau')) ->setLabels([ 'not_found' => 'aucune eau n\'a été trouvée... Bonne désidratation !', 'add_new' => 'Créer un nouvelle eau' ]);
注意:标签将替换自动生成的标签,但不会删除未作为参数传递的标签。
在 WordPress 管理菜单中定位
$cadeaux = ($cpt->addPostType('cadeau')) ->menuBefore('post'); // positionne avant le contenu article
$cadeaux = ($cpt->addPostType('cadeau')) ->menuAfter('post'); // positionne après le contenu article
可用位置列表:'dashboard', 'posts', 'media', 'links', 'pages', 'comments', 'appearances', 'plugins', 'users', 'tools', 'settings'
更改管理菜单图标
$cadeaux = ($cpt->addPostType('cadeau')) ->menuIcon('dashicons-buddicons-community');
可用图标列表:https://developer.wordpress.org/resource/dashicons
获取 CPT 的 slug
$cadeaux = $cpt->addPostType('cadeau'); $cadeaux->getSlug();
在内容保存时添加一个或多个操作
$cadeaux = $cpt->addPostType('cadeau'); $cadeaux->getSlug();
自定义内容类型设置
$eaux = ($cpt->addPostType('eaux')) ->setArgs([ 'taxonomies' => ['categories', 'tags'] ]);
内容的基本参数是
$this->args = [ 'hierarchical' => true, 'description' => 'description', 'taxonomies' => [], 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_in_rest' => true, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post', 'supports' => [ 'title', 'editor', 'author', 'thumbnail', 'custom-fields', 'trackbacks', 'comments', 'revisions', 'page-attributes', 'post-formats' ], ];
创建分类法
基本
$cpt->addTaxonomy('type_projet')
高级
添加到内容类型
$cadeaux = $cpt->addPostType('cadeau'); $type_projet = $cpt->addTaxonomy('type_projet'); $type_projet->addPostTypes('page', 'post', $cadeaux->getSlug());
取消分类法术语的层次结构
$type_projet = $cpt->addTaxonomy('type_projet'); $type_projet->isTag();
生成标签 标签生成方式与内容类型相同
$methodo = $cpt->addTaxonomy('methodo'); $methodo->generateLabels('méthodologie', 'méthodologies', true); // singulier, pluriel, féminin (bool)
自定义标签
$methodo = $cpt->addTaxonomy('methodo'); $methodo->setLabels([ 'new_item_name' => 'Nom de la nouvelle méthodologie.' ]);
默认标签
$this->labels = [ 'name' => $plural, 'singular_name' => $singular, 'search_items' => 'rechercher des '.$plural, 'all_items' => 'Toutes les '.$plural, 'parent_item' => sprintf("%s %s", $singular, ( ($feminin) ? 'parente' : 'parent' ) ), 'parent_item_colon' => sprintf("%s %s :", $singular, ( ($feminin) ? 'parente' : 'parent' ) ), 'edit_item' => sprintf( 'Modifier %s %s.', ( ($feminin) ? 'la' : 'le' ), $singular ), 'update_item' => sprintf( 'Mettre à jour %s %s.', ( ($feminin) ? 'la' : 'le' ), $singular ), 'add_new_item' => sprintf("Ajouter %s %s.",( ($feminin) ? 'une nouvelle' : 'un nouveau' ), $singular), 'new_item_name' => 'Nouveau nom de '.$singular, 'menu_name' => $plural, 'popular_items' => $plural.' populaires', 'separate_items_with_commas' => 'Séparez les '.$plural.' par des virgules.', 'add_or_remove_items' => 'Ajouter ou supprimer des '.$plural, 'choose_from_most_used' => sprintf( 'Choisissez les %s les plus %s.', $plural, ( ($feminin) ? 'utilisées' : 'utilisés' )), 'not_found' => sprintf( '%s %s %s.', ( ($feminin) ? 'aucunes' : 'aucun' ), $singular, ( ($feminin) ? 'Trouvée' : 'trouvé' ) ), ];
自定义分类法
$methodo = $cpt->addTaxonomy('methodo'); $methodo->setArgs([ 'show_in_rest' => false ]);
默认参数
[ // Hierarchical taxonomy (like categories) 'hierarchical' => true, 'show_in_rest' => true, // Control the slugs used for this taxonomy 'rewrite' => [ 'slug' => $this->slug, // This controls the base slug that will display before each term 'hierarchical' => true // This will allow URL's like "/locations/boston/cambridge/" ] ];