gamajo/genesis-theme-toolkit

为WordPress开发基于配置的Genesis子主题的构建块。

0.6.0 2017-08-07 14:35 UTC

This package is auto-updated.

Last update: 2024-09-07 21:33:23 UTC


README

为WordPress开发基于配置的Genesis框架子主题的构建块。

在构建主题时,将特定实现的配置与可重用逻辑分开,这不是很好吗?这就是使用配置来编写可重用代码系列文章的基础,也是此软件包的功能所在。

具体来说,此软件包基于Theme Toolkit软件包,并增加了特定于Genesis子主题开发的
砖块。它提供了一个简单的方法来

  • 过滤默认的Genesis面包屑参数。
  • 注册和注销Genesis布局。
  • 注销从Genesis继承的模板(扩展Theme Toolkit功能)
  • 过滤Genesis主题设置默认值,或将它们强制为特定值。
  • 注册和注销Genesis添加的小工具区域(扩展Theme Toolkit功能)
  • 自定义页脚版权字符串。
  • 使用WordPress add_theme_support( 'custom-logo' )功能实现自定义内联标志。

为什么?

ThemeToolkit和GenesisThemeToolkit软件包用于主题定制 - 添加哪些主题支持,添加哪些CSS/JS依赖,允许多少个页脚小工具,添加/删除哪些布局,应该有哪些图片大小 - 所有这些内容通常会放入functions.php或其他包含文件中。

当所有这些都在functions.php中设置时,重要值通常会在逻辑(如何处理这些值)和样板代码(打开和关闭函数,挂钩到过滤器等)的混合中丢失,这可能会使最终主题作者更难找到并根据自己的喜好配置这些重要值。

通过遵循一种关注点分离原则,我们使用配置文件将重要值都放在一个地方(易于告诉人们在哪里以及如何进行编辑),然后让那些不太熟悉PHP的人远离逻辑和样板代码。他们有一个单独的地方进行修改,而您不需要维护默认逻辑。

任何主题都可以使用ThemeToolkit,Genesis子主题可以在此使用GenesisThemeToolkit。

对于高级主题,您可以将工具包作为composer依赖项设置,以在本地进行开发,然后只需确保在您可分发主题zip文件中包含vendor/gamajo/...

安装

需要PHP 7.1。

在终端中,浏览到包含您的主题的目录,然后

composer require gamajo/genesis-theme-toolkit

然后您可以按需自动加载(PSR-4)或按需导入文件。

用法

查看example-config.php。这通常位于您的主题中,在config/defaults.php

您的主题将包含一个函数,在functions.php中,用于引入此配置,并加载单个组件,这些组件被称为砖块

// functions.php

namespace Gamajo\ExampleTheme;

use BrightNucleus\Config\ConfigFactory;
use Gamajo\GenesisThemeToolkit\BreadcrumbArgs;
use Gamajo\GenesisThemeToolkit\CustomLogo;
use Gamajo\GenesisThemeToolkit\FooterCreds;
use Gamajo\GenesisThemeToolkit\Layouts;
use Gamajo\GenesisThemeToolkit\Templates;
use Gamajo\GenesisThemeToolkit\ThemeSettings;
use Gamajo\GenesisThemeToolkit\WidgetAreas;
use Gamajo\ThemeToolkit\GoogleFonts;
use Gamajo\ThemeToolkit\ImageSizes;
use Gamajo\ThemeToolkit\ThemeSupport;
use Gamajo\ThemeToolkit\ThemeToolkit;
use Gamajo\ThemeToolkit\Widgets;

add_action( 'after_setup_theme', __NAMESPACE__ . '\setup' );
/**
 * Theme setup.
 *
 * Compose the theme toolkit bricks.
 */
function setup() {
	$config_file = __DIR__ . '/config/defaults.php';
	$config = ConfigFactory::createSubConfig( $config_file, 'Gamajo\ExampleTheme' );

	// These bricks are run in admin and front-end.
	$bricks = [
		ImageSizes::class,
		Templates::class,
		ThemeSupport::class,
		Widgets::class,
		Layouts::class,
		ThemeSettings::class,
		WidgetAreas::class,
		CustomLogo::class,
	];

	// Apply logic in bricks, with configuration defined in config/defaults.php.
	ThemeToolkit::applyBricks($config, ...$bricks);


	if ( ! is_admin() ) {
		// Only front-end bricks.
		$bricks = [
			FooterCreds::class,
			BreadcrumbArgs::class,
			GoogleFonts::class,
		];

		ThemeToolkit::applyBricks($config, ...$bricks);

	}
}

字符串'Gamajo\ExampleTheme'与配置文件底部return中的两个键匹配。在配置和函数中将此更改为您的公司名称和主题名称。

您不必使用本包装中的所有砖块;可以挑选使用。

您可以将自己的砖块添加到主题中(在您的 src/ 或类似目录),然后在上面的函数中使用它们。

如果您没有使用 Genesis 框架,请查看适用于构建通用主题的 主题工具包

变更日志

请参阅 CHANGELOG.md

致谢

Gary Jones 构建
版权所有 2017 Gamajo