2012-09-10 13 views

Respuesta

8

Desde la versión 2.0 el desarrollador de complementos ha incluido una serie de filtros que se pueden utilizar en sus functions.php. Estos incluyen Theme Mode, y los comentarios dentro del estado 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)); 

para activar las opciones de árbol en su tema, más que como un plugin se incluyen todos los archivos del plugin en el directorio raíz del tema, es decir,

/wp-content/themes/mi-impresionante-temáticos/Opciones -tree

y en functions.php correría este filtro y luego incluiría el archivo ot-loader.php. He mostrado esto a continuación, y también he mostrado el filtro show_pages;

add_filter('ot_theme_mode', '__return_true'); 
add_filter('ot_show_pages', '__return_true'); 

require_once ('option-tree/ot-loader.php'); 

El filtro show_pages es útil porque después de haber establecido su tema y sus opciones usted entonces entrar y configurarlo para que falsa para que el cliente no se le da el menú principal Opciones Árbol de administración y, por tanto, puede' Empieza a 'retocar' y arruina todo. Lo cambias a;

add_filter('ot_show_pages', '__return_false'); 
+1

Lol, RTFM. D'Oh! Acabo de tipear todo esto y hay una sección de Modo de tema en la documentación que cubre todo esto. – McNab

3

Para cualquier persona que utilice un tema infantil y conseguir "failed to open stream" errores al usar el plugin OptionTree En el modo Tema, haga lo siguiente:

ot-loader.php, alrededor de la línea 128, el cambio esto:

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

a esto:

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

el código comprueba si el tema en uso es un niño theme (is_child_theme()) y establece el directorio y la URL utilizando get_stylesheet_directory() y get_stylesheet_directory_uri().

Espero que esto ayude a cualquier otra persona que se encuentre con este problema.

Cuestiones relacionadas