joseffb / wp-developer-kit
一个开发库,使在WordPress中创建内容变得更加容易。
Requires
- composer/installers: ~1.12.0
- timber/timber: ^1.22.1
Requires (Dev)
- roave/security-advisories: dev-latest
Suggests
- aws/aws-sdk-php: 3.*
- elasticsearch/elasticsearch: 8.7.x-dev
- solarium/solarium: ^6.2.8
- wp-graphql/wp-graphql: As a faster and alternative to the built in wp-json and wp-query system
This package is auto-updated.
Last update: 2024-09-09 15:43:22 UTC
README
欢迎来到WP开发工具包,简称WDK。WDK允许WordPress开发者轻松高效地创建网站。
WDK为开发者提供的一些功能如下:
- 基于JSON的配置文件:通过一组配置文件创建自定义文章类型、自定义分类、菜单、页面、文章、影子分类关系、短代码和小工具。
- 影子分类允许您链接并使用多个文章,以及这些文章的属性(例如图像、元数据、分类等)在相关文章中。也可以手动定义条件影子分类,允许您将单个分类表示拆分为多个(例如,源文章可以根据特定值在同一文章中划分为多个分类。)
- 用于日志记录、调试和故障排除的实用函数。
- 基于Twig的模板,用于插件、主题、子主题和后台页面。这允许您将数据层从模板层中分离出来。非常适合MVC工作流程。
入门
WDK可以作为插件安装(下载并放置到插件文件夹)或通过Composer安装。
插件安装
- 从https://github.com/Joseffb/wp-development-kit下载源代码
- 将这些文件放入您/plugins 或 /mu-plugins 文件夹中的一个名为 wp-development-kit 的文件夹中。
- 在该目录下运行 composer install 以安装依赖文件。
- 从WordPress网站内部激活插件。
Composer安装
- 在您的应用程序中运行以下Composer命令
composer require joseffb/wp-development-kit
初始化库
- 在您的启动文件中放置以下命令以初始化Composer自动加载器
require_once __DIR__ . '/vendor/autoload.php'
;- 放置以下命令以调用和初始化WDK:
WDK\System::Start();
文件结构
WDK默认期望您从运行 System::Start() 的根目录开始放置WDK文件以下结构
root
│
└─── wdk
│
└─── configs
│ │
│ └─── json files
│
└─── views
│
└─── twig files
这些文件的位置可以通过在 'WDK_CONFIG_BASE' 和 'WDK_TEMPLATE_LOCATIONS_BASE' 中定义路径来更改。如果在同一站点中创建多个使用WDK的插件和主题,这可能是维护的好选项。
与配置文件一起工作
8种配置文件类型
WDK有8种不同的配置文件,您可以使用这些文件来构建WordPress网站
- Fields.json - 用于在CPT上创建自定义字段。
- Menus.json - 用于在WP菜单系统中创建菜单。
- Posts.json - 用于将页面和文章加载到系统中。
- Post_types.json - 用于创建自定义文章类型,以及如影子分类关系等附加功能。
- Shortcodes.json - 用于定义短代码。
- Sidebars.json - 用于定义侧边栏(以及哪些小工具加载到侧边栏)。
- Taxonomies.json - 用于定义自定义分类以及如管理列和WP-GraphQL访问等额外选项。
- Widgets.json - 用于定义小工具以及该小工具的自定义字段。
重要:配置文件必须是有效的并且符合JSON文件规范。如果它们未通过验证,WP将出现严重故障。
Post_types.json & Taxonomy.json
您最常使用的两个配置文件可能是Post_types.json和Taxonomy.json。仅使用这两个文件,您可以在几分钟内设置整个网站。每个文件都是为了模仿WordPress CPT和Taxonomy命令的参数而设计的。
大多数参数都非常直观,其中一些参数是额外的,下面将进行解释。
文章类型
额外选项
- use_twig:用于告诉WDK使用基于Twig的模板来显示该CPT类型。模板将查找您根目录下的/wdk/views文件夹中的'single-CPTNAME.twig'。您可以使用functions文件中的update_option(wdk_template_TEMPLATENAME);来替换任何WordPress模板(例如存档)。
- shadow_in_cpt:一个数组,用于标识应与该CPT定义关联的CPT的单数名称。阴影CPT将作为此CPT记录的分类显示。
示例JSON文件
[ { "name": "Destinations", ... }, { "name": "Events", "args": { "use_twig": true, "shadow_in_cpt": ["destination"], "label": "Events", "labels": { "name": "Events", "singular_name": "Event", "menu_name": "Events", "parent_item_colon": "Parent Events:", "all_items": "All Events", "view_item": "View Events", "add_new_item": "Select Events:", "add_new": "Add New", "edit_item": "Edit Events", "update_item": "Update Events", "search_items": "Search Events", "not_found": "Event Not Found", "not_found_in_trash": "Event not found in Trash" }, "description": "Conference Events", "supports": [ "title", "thumbnail", "editor", "custom-fields", "comments" ], "hierarchical": false, "public": true, "show_ui": true, "show_in_menu": true, "show_in_nav_menus": true, "show_in_admin_bar": true, "menu_position": 4, "can_export": true, "has_archive": true, "exclude_from_search": true, "publicly_queryable": true } } ]
例如,'事件'类型的CPT记录现在将显示在目的地记录管理中的'事件'分类中。
分类法
额外选项
- show_as_admin_filter:默认为true。将为您在标准WP CPT页面顶部添加一个筛选器。
- show_admin_column:默认为true。将在受影响的CPT中添加一列。
- show_in_graphql:(未显示)默认为true。在WP-GraphQL插件中显示CPT所需。
- graphql_single_name:(未显示)默认为inflector类的计算出的单数名称。
- graphql_plural_name:(未显示)默认为inflector类的计算出的复数名称。
[ { "name": "Event Day", "post_types": [ "event" ], "labels": [], "options": { "show_in_admin_bar": "true", "show_admin_column": "true", "show_as_admin_filter": "true" }, "defaults": [ "6/1", "6/2", "6/3", "6/4" ] }, { "name": "Event Slot", "post_types": [ "event" ], "labels": [], "options": { "show_in_admin_bar": "true", "show_admin_column": "true", "show_as_admin_filter": "true" }, "defaults": [ "9am - 10am", "11am - 12pm", "12pm - 1pm", "1pm - 2pm", "2pm - 3pm" ] } ]
使用Twig模板
WDK使用Timber插件作为在WordPress上实现Twig的一种巧妙方式,因此WDK还使用The Timber Starter Theme作为默认的备份主题(位于https://github.com/timber/starter-theme/,MIT许可证下)。
当满足两个条件时,Twig模板将被加载。
- process_template_TEMPLATENAME选项或post_meta设置为true(use_twig为您完成此操作)。
- 并且当Timber在其位置路径中找到适当的匹配模板时。
在Twig加载时,将触发一个上下文钩子(wdk_context_TEMPLATENAME),您可以使用它向模板添加数据。
add_filter('wdk_context_templatename', function($context) { $context['my new data'] = "something here"; return $context; });
变更日志
0.0.41 - 添加了Hive类以实现集中的文章管理。
0.0.2 - 修复了没有配置文件时出现的警告。
0.0.1 - 初始发布