ixa / layout

WordPress库,提供在主题中使用布局的基本支持

0.3.1 2014-07-15 15:38 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:08:54 UTC


README

Build Status

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()函数的插件或主题发生冲突。