cnp / pattern-library
使用命名原子和结构数组,更快地堆叠原子和分子。
Requires
- php: >=5.3.3
- dev-master
- v1.0.1
- v1.0.0
- v0.18.0
- v0.17.8
- v0.17.7
- v0.17.6
- v0.17.5
- v0.17.4
- v0.17.3
- v0.17.2
- v0.17.1
- v0.17.0
- v0.16.1
- v0.16.0
- v0.15.9
- v0.15.8
- v0.15.7
- v0.15.6
- v0.15.5
- v0.15.4
- v0.15.3
- v0.15.2
- v0.15.1
- v0.15.0
- v0.14.7.1
- v0.14.7
- v0.14.6
- v0.14.5
- v0.14.4
- v0.14.3
- v0.14.2
- v0.14.1
- v0.14.0
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.7
- v0.12.6
- v0.12.5
- v0.12.4
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12
- v0.11.5
- v0.11.4
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.6
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10
- v0.9
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.2.0
- 0.1.0
This package is not auto-updated.
Last update: 2024-09-24 19:47:29 UTC
README
一个PHP库,专门为WordPress原子和有机体编写标准化标记而设计,以便快速编写。大多数原子都包含一个WordPress模板标签以及环绕模板标签返回内容的标记。例如,PostTitle原子默认情况下返回由h2
标签包围的WordPress函数the_title();
的内容。
原子中的每个部分,从标签到内容,都可以在原子参数中进行配置,如果无法访问主要参数,则可以单独过滤。最后,原子可以堆叠在一起形成有机体,这使得为WordPress主题编写标记更快、更干净。这样,您不必处理成堆的打开和关闭PHP标签,或奇特的缩进和古怪的if
语句嵌套。所有这些都会分散对标记核心的注意力:内容。WordPress Pattern Library使标记更加清晰。
原子
AtomTemplate类是一种定义常见原子参数的方式。方法getMarkup使用CNP/Atom类来组装标记。如果需要,命名原子也可以创建和使用特定的原子参数(请参阅PostThumbnail)。
原子文档
链接
一个标准链接。
参数
- href:链接URL。
使用
- 无
PostLink
扩展:Link
指向文章的链接。
参数
- 无
使用
get_permalink()
FrontPageLink
扩展:Link
指向主页的链接。
参数
- 无
使用
home_url()
SiteTitleFrontPageLink
以网站标题作为内容的指向主页的链接。
参数
- 无
使用
- FrontPageLink
- get_bloginfo( 'site_title' )
PostsPageLink
扩展:Link
指向文章页面的链接。
参数
- 无
使用
- get_permalink( get_option( 'page_for_posts' ) )
FacebookShare
扩展:Link
一个Facebook分享链接。
参数
- share:要分享的URL。
- target:链接目标窗口。默认为"_blank"。
使用
- 当
share
未提供且$post
为null时,为get_site_url()
- 当
share
未提供且$post
已定义时,为get_the_permalink()
TwitterShare
扩展:Link
一个Twitter分享链接。
参数
- share:要分享的URL。
- status:预定义的Twitter状态。
- target:链接目标窗口。默认为"_blank"。
使用
- 当
share
未提供且$post
为null时,为get_site_url()
- 当
share
未提供且$post
已定义时,为get_the_permalink()
EmailShare
扩展:Link
一个电子邮件分享链接。
参数
- share:要分享的URL。
- body:预定义的电子邮件消息正文。
- target:链接目标窗口。默认为"_blank"。
使用
- 当
share
未提供且$post
为null时,为get_site_url()
- 当
share
未提供且$post
已定义时,为get_the_permalink()
摘录
使用来自文章对象的手动摘录。
参数
- 无
使用
- 无
ExcerptForce
扩展:Excerpt
要么是文章摘录,要么是文章的开始部分。
参数
- 无
使用
get_the_excerpt()
ExcerptSearch
扩展:Excerpt
为搜索结果页面定制的专用摘录,突出显示搜索到的术语。
参数
- 无
使用
get_query_var( 's' )
get_the_content()
PostClass
返回具有文章类的<article>
。
参数
- 无
使用
get_post_class()
PostThumbnail
返回文章缩略图。
参数
- size:文章缩略图大小。
- attr:传递给
get_the_post_thumbnail
函数的属性。
使用
get_the_post_thumbnail()
PostTitle
返回包含标题的h2
。
参数
- 无
使用
get_the_title()
PostTitleLink
扩展:PostTitle
返回包含PostLink的PostTitle。
参数
- 无
使用
- 无
CategoryList
返回文章分类列表。
参数
- 无
使用
get_the_category_list()
Loop
使用vsprintf
运行简单的循环。
参数
- array:要遍历的数据数组。
- 格式: 格式字符串。
使用
vsprintf()
SchemaAddress
参数
- address_data: 地址数据数组。键包括
- street_address
- city
- state
- zip_code
- country
使用
- 无
PostDate
返回格式化的帖子日期
参数
- date_format: PHP日期格式。默认: "F j, Y"
- prefix: 日期前的字符串输出。默认: "
<strong>Published:</strong>
"。 - suffix: 日期后的字符串输出。默认: ""。
使用
get_the_date()
EventDate
一个复杂的原子,返回事件日期。它适用于Tzolkin或The Events Calendar。
参数
- start_date_function: 获取事件开始日期的函数。
- end_date_function: 获取事件结束日期的函数。
- all_day_function: 检查事件是否为全天事件的函数。
使用
self::SetEventFunctions
: 设置事件开始日期、结束日期和全天函数。self::setDateType
: 根据事件开始日期和结束日期与当前时间的关系设置日期类型。可能的值有:"now"、"allday-single"、"allday-multiple"、"single-day"或"uncategorized",如果所有其他检查失败。self::setDateFormat
: 使用date
和sprintf
设置事件日期格式字符串。
过滤器
- event_date_functions/
{$name}
_event_date_functions: 全局或特定于有机体的过滤器,用于调整事件日期函数。 - event_date_format/
{$name}
_event_date_format: 全局或特定于有机体的过滤器,用于设置日期格式。
EventBadge
扩展:EventDate
返回事件“徽章”,即显示事件开始日期的月/日块。
参数
- badge_pieces (数组):徽章的子元素。默认:
[ 'month' => date( 'F', $this->event_start_date ), 'day' => date( 'd', $this->event_start_date ) ]
使用
- 无
过滤器
{$name}
_badge_pieces_arr: 调整徽章元素的特定于有机体的过滤器。
TaxonomyList
返回分配给特定帖子的分类法术语列表。用于自定义分类法。
参数
- taxonomy: 从中提取分类法的分类法。默认: 如果未提供,则为
get_object_taxonomies()
的第一个结果。 - separator: 列表项的分隔符。默认: ","。
- before: 在列表前输出的字符串。
- after: 在列表后输出的字符串。
使用
get_object_taxonomies()
get_the_term_list()
ListTerms
返回一个无序列表,包含分类法术语。
参数
- taxonomy: 显示哪个分类法的术语。默认: 如果帖子类型是"post",则为"Category",如果未提供,则为从
get_object_taxonomies()
返回的第一个分类法。 - list_args:
wp_list_categories()
的列表参数。默认:[ 'taxonomy' => $this->taxonomy, 'echo' => 0, 'title_li' => '' ]
。
使用
get_object_taxonomies()
wp_parse_args()
wp_list_categories()
过滤器
- list_terms_list_args/
{$name}
_list_terms_list_args: 全局或特定于有机体的过滤器,用于wp_list_categories()
参数。
ListPages
返回一个无序列表,包含页面。
参数
- list_args:
wp_list_pages()
的列表参数。默认:[ 'post_type' => 'page', 'echo' => 0, 'title_li' => '' ]
。
使用
wp_list_pages()
过滤器
- list_pages_list_args/
{$name}
_list_pages_list_args: 全局或特定于有机体的过滤器,用于wp_list_pages()
参数。
PostAuthor
显示帖子作者的名称。
参数
- prefix (字符串): 帖子作者前的字符串。默认: "By: "。
- suffix (字符串): 帖子作者后的字符串。默认: "."。
使用
get_the_author()
Menu
返回wp_nav_menu。
参数
- menu_args (数组): 传递给
wp_nav_menu()
的参数。默认:[ 'menu' => $this->menu, 'echo' => false, 'container' => '' ]
。
使用
wp_parse_args()
wp_nav_menu()
Image
返回一个响应式图像。
参数
- image_object/attachment_id: 可以从ACF提供图像对象或附件ID。然而,我们只需要ID,所以附件ID是首选。
- size: WordPress图像大小。
- icon: 图标。
使用
wp_get_attachment_image()
ContentSourceLink
一个在前端输出的链接,用于为内容区域提供更快的编辑访问。
参数
- href:指向内容的相对WordPress管理员链接。使用
site_url()
构建完整URL。 - type:有3种内容类型:“h”代表“硬编码”,“d”代表“动态”和“e”代表“可编辑”。只有可编辑内容源链接应该有href。
- parent:内容源链接标签元素的CSS选择器。
- title:title属性的简写。
使用
site_url()
BackgroundVideo
返回一个Vide启用的背景视频。
参数
- mp4(URL):mp4文件的URL。
- webm(URL):webm文件的URL。
- jpg(URL):jpg文件的URL。
- vide-options(数组):Vide选项。默认值是:
autoplay: true, posterType: jpg, loop: true, muted: true, position: left top
。
使用
- 无
PostTermLinkSingle
返回单个帖子术语。在设计中只有一个术语空间,但由于内容输入不正确,可能出现多个术语的情况下很有用。
参数
- taxonomy(字符串):提取帖子术语的分类。默认值:“”。
使用
wp_get_post_terms()
get_term_link()
Organisms
OrganismTemplate类是多原子标记的起点。使用结构数组,我们可以传递需要包裹在生物体内的命名或通用原子。
与AtomTemplate类似,OrganismTemplate类有一个getMarkup方法,该方法遍历标记数组并编译生物体的标记。
OrganismTemplate类中可用的属性有
- name:(必需)生物体名称。生物体内部的所有原子都被赋予CSS类
$organism_name-$atom_name
。 - tag:(可选)生物体标签,用于CNP/Atom。 默认值:'div'。
- tag_type:(可选)标签类型,用于CNP/Atom组装生物体包装器时。默认为split,以便正确嵌套原子。 默认值:'split'。
- attributes:(可选)生物体属性,用于CNP/Atom。 默认值:数组。
- before_content:(可选)放置在原子之前的一串标记。
- after_content:(可选)放置在原子之后的一串标记。
- structure:(必需)结构数组。
- posts:(可选)WP帖子对象数组,用于loopPosts方法。如果您正在构建帖子列表,这很有用。
- posts-structure:(如果存在posts则是必需)每个帖子对象的结构。
Structure
您必须以特定方式编写结构数组,以便正确嵌套。
- key:原子名称。
- value:字符串|数组。如果值是字符串,则它将被用作原子的内容。如果它是一个数组,那么您必须提供以下键之一
- children:用于创建另一层嵌套。
- parts:用于指示生物体此部分的最终嵌套级别。
除了children
和parts
之外,值还用于传递普通原子参数。存在一个用于class
的简写,这使得添加特定的CSS类变得更容易。
生物体示例
简单
输入
$brief_args = [ 'name' => 'brief', 'structure' => [ 'title' => 'The Brief', 'description' => 'Here's the Brief!', ] ];
输出
<div class="brief"> <div class="brief-title">The Brief</div> <div class="brief-description">Here's the Brief!</div> </div>
使用帖子、子代和部分进行嵌套
输入
$post_card_args = array( 'name' => 'posts', 'posts' => $latest_posts, 'posts-structure' => [ 'item' => [ 'children' => ['PostClass'], 'class' => 'column' ], 'PostClass' => [ 'children' => ['item-image', 'item-text'], 'class' => 'posts-item-inside' ], 'item-image' => [ 'parts' => [ 'PostThumbnail' ] ], 'item-text' => [ 'parts' => [ 'PostTitleLink', 'ForceExcerpt' ] ] ] );
输出
<div class="posts"> <div class="posts-item column"> <article class="PostClass posts-item-inside"> <div class="posts-item-image"> <img src="PostThumbnail.jpg" /> </div> <div class="posts-item-text"> <h2 class="posts-PostTitleLink"><a href="#">Post Title</a></h2> <p class="posts-ForceExcerpt">Post excerpt</p> </div> </article> </div> </div>