nikitaglobal / wptheme
基础主题 v.2.0
v2.13
2023-05-18 07:18 UTC
Requires
- php: >=5.3.0
- htmlburger/carbon-fields: ^3.2
README
此包旨在简化WordPress主题开发。我为此需求创建了它,但它也可能对您有用。
基本安装
- 在已安装且正常工作的WordPress中,在wp-content/themes中创建您的主题文件夹。
- 在其中运行"composer require nikitaglobal/wptheme"。
- 运行"sh vendor/mycooltheme/wptheme/bin/mktheme"或复制vendor/mycooltheme/wptheme/toTheme文件到您的主题文件夹
- 将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()