我想将Option Tree框架与Wordpress主题集成,而无需安装和激活插件,那么该怎么做呢?
答案 0 :(得分:8)
从版本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 ) );
要激活主题中的选项树而不是插件,请在主题的根目录中包含所有插件文件,即
/可湿性粉剂内容/主题/我 - 真棒主题/选项树
并在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' );
答案 1 :(得分:3)
对于使用子主题且在主题模式下使用OptionTree插件时出现“无法打开流”错误的任何人,请执行以下操作:
第128行的ot-loader.php改变了这个:
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()设置目录和网址。
希望这可以帮助解决此问题的其他任何人。
答案 2 :(得分:0)
集成选项树非常容易:
如果您想使用相同的插件slug,请访问以下链接:
或者你可以在WordPress主题的自定义文件夹中加入它:
视频指南(3:44秒):
答案 3 :(得分:0)
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');