我想在不安装和激活插件的情况下将选项树框架与 Wordpress 主题集成,那么该怎么做呢?
4 回答
从 2.0 版开始,插件开发人员已经包含了许多可以在您的 functions.php 中使用的过滤器。其中包括Theme Mode
, 和 ot-loader.php 状态中的注释;
* For developers: Theme mode.
*
* Run a filter and set to true to enable OptionTree theme mode.
* You must have this files parent directory inside of
* your themes root directory. As well, you must include
* a reference to this file in your themes functions.php.
* @since 2.0
*/
define( 'OT_THEME_MODE', apply_filters( 'ot_theme_mode', false ) );
要在您的主题中激活选项树而不是作为插件,您将所有插件文件包含在主题的根目录中,即
/wp-content/themes/my-awesome-theme/options-tree
然后在functions.php
你运行这个过滤器,然后包含 ot-loader.php 文件。我在下面展示了这个,我还展示了 show_pages 过滤器;
add_filter( 'ot_theme_mode', '__return_true' );
add_filter( 'ot_show_pages', '__return_true' );
require_once ('option-tree/ot-loader.php');
show_pages 过滤器很有用,因为在您设置了主题和选项后,您将进入并将其设置为 false,因此客户端不会获得主选项树管理菜单,因此无法开始“修补”和垃圾一切。您将其更改为;
add_filter( 'ot_show_pages', '__return_false' );
对于使用子主题并在主题模式下使用 OptionTree 插件时出现“无法打开流”错误的任何人,请执行以下操作:
ot-loader.php,在第 128 行左右,更改:
if ( false == OT_THEME_MODE ) {
define( 'OT_DIR', plugin_dir_path( __FILE__ ) );
define( 'OT_URL', plugin_dir_url( __FILE__ ) );
} else {
define( 'OT_DIR', trailingslashit( get_template_directory() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
define( 'OT_URL', trailingslashit( get_template_directory_uri() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
}
对此:
if ( false == OT_THEME_MODE ) {
define( 'OT_DIR', plugin_dir_path( __FILE__ ) );
define( 'OT_URL', plugin_dir_url( __FILE__ ) );
} elseif ( is_child_theme() ) {
define( 'OT_DIR', trailingslashit( get_stylesheet_directory() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
define( 'OT_URL', trailingslashit( get_stylesheet_directory_uri() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
} else {
define( 'OT_DIR', trailingslashit( get_template_directory() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
define( 'OT_URL', trailingslashit( get_template_directory_uri() ) . trailingslashit( basename( dirname( __FILE__ ) ) ) );
}
代码检查正在使用的主题是否是子主题 (is_child_theme()) 并使用 get_stylesheet_directory() 和 get_stylesheet_directory_uri() 设置 dir 和 url。
希望这可以帮助其他遇到此问题的人。
It's really easy to integrate option tree :
Visit link below if you like to use it using same plugin slug:
Or you can ingrate it in custom folder on your WordPress theme:
Video Guide here (3:44 Sec):
add_filter('ot_show_pages','__return_false');
include_once('inc/theme-options.php');
theme-options.php
在文件中导出设置。
add_filter('ot_theme_mode','__return_true');
require( trailingslashit( get_template_directory() ) . 'theme-option/ot-loader.php' );
add_filter('ot_show_new_layout','__return_false');