nikitaglobal/wptheme

基础主题 v.2.0

安装: 58

依赖: 0

建议: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

v2.13 2023-05-18 07:18 UTC

This package is auto-updated.

Last update: 2024-09-18 10:17:12 UTC


README

此包旨在简化WordPress主题开发。我为此需求创建了它,但它也可能对您有用。

基本安装

  1. 在已安装且正常工作的WordPress中,在wp-content/themes中创建您的主题文件夹。
  2. 在其中运行"composer require nikitaglobal/wptheme"。
  3. 运行"sh vendor/mycooltheme/wptheme/bin/mktheme"或复制vendor/mycooltheme/wptheme/toTheme文件到您的主题文件夹
  4. 将theme.php.sample重命名为theme.php并编辑它。

theme.php

THEMEPREFIX是一个基本常量。可以是几乎任何拉丁字母和数字的唯一值。用于命名短代码、钩子、添加样式和脚本。 THEMEVERSION是您主题的当前版本。THEMESCRIPTS是您主题中使用的js脚本数组。所有路径相对于您的主题文件夹或绝对URI。THEMESTYLES与css相同。THEMEMENUS是一个菜单数组数组,每个菜单通过id和标签定义,以下为示例。TYPE_FIELDS是一个定义每个帖子类型的自定义字段的数组。"plans"和"reviews"在以下示例中给出。语法类似于这里 [https://docs.carbonfields.net/learn/fields/usage.html] SETTINGS_FIELDS是一个类似的数组,用于定义基本主题设置。例如页眉或页脚中的联系信息。TEMPLATE_FIELDS是一个类似的数组,用于定义主题模板的自定义字段。例如产品页面的价格。

示例

<?php
define( 'THEMEPREFIX', 'mycooltheme' );
define( 'THEMEVERSION', '1.0' );
define( 'THEMESCRIPTS', array( 'assets/js/app.js', 'assets/js/slider.js' ) );
define( 'THEMESTYLES', array( 'assets/css/main.css' ) );
define(
	'THEMEMENUS',
	array(
		array(
			'id'    => 'topmenu',
			'label' => __( 'Top menu', 'mycooltheme' ),
		),
		array(
			'id'    => 'socialmenu',
			'label' => __( 'Social networks', 'mycooltheme' ),
		),
	)
);
define(
	'TYPE_FIELDS',
	array(
		'plans'           => array(
			array( 'text', THEMEPREFIX . '_price', __( 'Price', 'mycooltheme' ) ),
			array( 'select', THEMEPREFIX . '_stars', __( 'Stars', 'mycooltheme' ), array( 1,2,3,4,5 ) ),
			array( 'select', THEMEPREFIX . '_plan', __( 'Plan', 'mycooltheme' ), 
				array( 'month' => __('Month', 'mycooltheme'), 'year' => __('Year', 'mycooltheme') ) ),
		),
		'reviews'           => array(
			array( 'richtext', THEMEPREFIX . '_hotel', __( 'About hotel', 'mycooltheme' ) ),
		),
	)
);
define(
	'TEMPLATE_FIELDS',
	array(
		'tpl-product.php' => array(
			array( 'text', THEMEPREFIX . '_price', __( 'Product price', 'mycooltheme' ) ),
		)
	)
);
define(
	'SETTINGS_FIELDS',
	array(
		array( 'text', THEMEPREFIX . '_phone', __( 'Phone', 'mycooltheme' ) ),
		array( 'text', THEMEPREFIX . '_email', __( 'E-mail', 'mycooltheme' ) ),
		array( 'text', THEMEPREFIX . '_instagram', __( 'Instagram', 'mycooltheme' ) ),
		array( 'text', THEMEPREFIX . '_linkedin', __( 'Linkedin', 'mycooltheme' ) ),
    )
);

菜单

方法Wptheme\Menu::items( 'topmenu' )返回topmenu位置的菜单项WP对象数组。对象还有额外的键

  • active true/false如果此项目是当前项
  • domain去除后的域名。 https://somedomain.com/category/postname变为somedomain。一个应用场景是获取流行服务名称,如youtube、instagram

示例

<?php $items = Wptheme\Menu::items( 'topmenu' );
if ( empty( $items ) ) {
	return;
}
?>
<nav class="main-nav">
	<?php
	foreach ( $items as $item ) {
		$active = $item->current ? 'active' : '';
		?>
		<a href="<?php echo esc_url( $item->url ); ?>" class="<?php echo esc_attr( $active ); ?>"><?php echo esc_html( $item->title ); ?></a>
		<?php
	}
	?>
</nav>

标签

对于单个帖子

NgTheme::tags()

所有标签

NgTheme::get_all_tags()

nikita.global