ixa / layout
WordPress库,提供在主题中使用布局的基本支持
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-28 20:08:54 UTC
README
Ixa Layout是一个WordPress库,提供在主题中使用布局的基本支持。
需求
除了PHP 5.3之外,您需要一个安装了Composer的WordPress实例,例如,Ixa Wordpress Starter。
安装
在composer.json
中作为依赖项要求
"require": {
...
"ixa/layout" : "0.3"
}
并在<your-theme>/functions.php
文件中注册过滤器
Ixa\Layout\LayoutFilter::register();
注册过滤器后,您可以使用yield_content()
函数装饰您的视图。默认布局文件夹是<your-theme>/layouts
,可以使用第一个参数更改它:LayoutFilter::register($customDir)
。
视图
在布局模式中,视图是包含主要内容模板。在WordPress术语中,是遵循模板优先级加载的文件。
常规视图的结构类似于
<?php get_header() ?>
<main>
<?php the_post() ?>
<?php the_title() ?>
<?php the_content() ?>
</main>
<?php get_sidebar() ?>
<?php get_footer() ?>
使用IxaLayout,我们可以摆脱所有无关的模板标签,只编写主要内容
<?php the_post() ?>
<?php the_title() ?>
<?php the_content() ?>
IxaLayout将解析内容,并在布局调用yield_content()
函数时显示。
布局
布局是视图的包装器,它们使用与常规WordPress模板相同的语法和函数。它们还具有方便的函数yield_content()
,该函数加载视图的解析内容。
一个典型的布局将是
<?php get_header() ?>
<main>
<?php yield_content() ?>
</main>
<?php get_sidebar() ?>
<?php get_footer() ?>
布局选择
所有布局都必须放在/layouts文件夹下。default.php布局是必需的,因为它是当所选布局未找到时的回退。
在视图中,我们可以使用layout()
函数设置要应用的布局。第一个参数是布局的相对路径,不包括扩展名
layout('services')
Ixa Layout将尝试加载<your-theme>/layouts/services.php
文件,如果不存在,将回退到<your-theme>/layouts/default.php
。如果没有找到布局,将抛出Ixa/Layout/LayoutNotFoundException
。
Ixa Layout的工作原理
Ixa Layout是一个附加到template_include
的过滤器,其优先级为10000
,以便在所有过滤器之后运行,然后加载和保存WordPress根据模板优先级选定的视图,并返回WordPress加载的布局的路径。
Ixa Layout不是插件,因此需要由Composer自动加载并在您的functions.php
文件中注册。这样我们可以在不同的环境中保持一致的代码,因为我们不必等待用户激活插件。
开发状态
它尚未完全测试,可能与使用template_include
过滤器或ob_get_contents()
函数的插件或主题发生冲突。