如何为Wordpress主题集成选项树

时间:2012-09-10 13:10:50

标签: wordpress

我想将Option Tree框架与Wordpress主题集成,而无需安装和激活插件,那么该怎么做呢?

4 个答案:

答案 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,请访问以下链接:

Using same plugin slug

或者你可以在WordPress主题的自定义文件夹中加入它:

Using custom folder

视频指南(3:44秒):

Video Guide

答案 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');