6

我想在不安装和激活插件的情况下将选项树框架与 Wordpress 主题集成,那么该怎么做呢?

4

4 回答 4

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 ) );

要在您的主题中激活选项树而不是作为插件,您将所有插件文件包含在主题的根目录中,即

/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' );
于 2012-12-12T11:26:59.433 回答
3

对于使用子主题并在主题模式下使用 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。

希望这可以帮助其他遇到此问题的人。

于 2013-02-20T20:55:25.980 回答
0

It's really easy to integrate option tree :

Visit link below if you like to use it using same plugin slug:

Using same plugin slug

Or you can ingrate it in custom folder on your WordPress theme:

Using custom folder

Video Guide here (3:44 Sec):

Video Guide

于 2014-02-14T17:18:48.107 回答
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');
于 2020-07-02T07:45:40.930 回答