dangayle
  • 0
Мастер

Конфигурация плагина по умолчанию для переопределения wp_options?

  • 0

У меня есть несколько плагинов, для которых я всегда устанавливаю конфигурацию точно таким же образом. Каждый раз, когда я создаю новый сайт, подключаются одни и те же плагины, и на их настройку уходит одинаковое количество времени.

Можно ли создать файл конфигурации, который переопределяет любые параметры wp_options, установленные для каждого плагина?

Share
  1. Не могли бы вы объяснить немного больше, вы имеете в виду параметры, созданные плагинами и сохраненные в таблице параметров?

    • 0
  2. Вы можете проверить, какие опции они добавляют (посмотрите исходный код), а затем просто написать такую ​​функцию:

    /*
    Plugin Name:    Mother of all plugins
    Plugin URI:  http://wordpress.org/extend/plugins/
    Description:    Offers the <code>$all_plugin_options;</code> var to access all predefined plugin options
    Author:      Franz Josef Kaiser
    Author URI:     http://say-hello-code.com
    Version:        0.1
    License:        GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
    */
    
    // Template Tag
    function get_all_plugin_options() 
    {
        // First we call the class
        $class = new MotherOfAllPlugins;
        $data = $class->predefined_plugin_options()
        return $data;
    }
    
    if ( ! class_exists('MotherOfAllPlugins') )
    {
    
    class MotherOfAllPlugins
    {
        protected $plugin_options;
    
        public function __construct( $plugin_options )
        {
          // defaults
          $default_options = array(
             'plugin_a' => array(
                 'deprecated' => ''
                ,'name'       => 'value'
                ,'key'        => 'value'
              )
            ,'plugin_b' => array(
                 'deprecated' => ''
                ,'name'       => 'value'
                ,'key'        => 'value'
              )
          );
          // Now overwrite the 
          $this->plugin_options = array_merge( $default_options, $plugin_options );
    
          add_action( 'init', 'predefined_plugin_options' );
        }
    
        function predefined_plugin_options() 
        {
    
          // Set the flag if we have already done this
          // _EDIT #1:_ This sets an option in the wp_options table containing TRUE if your plugin predef options are already present in the DB
          if ( !get_option( 'predef_plugins_setup' ) === TRUE )
             add_option( 'predef_plugins_setup', TRUE );
    
          if ( !get_option( 'predef_plugins_setup' ) === TRUE )
          {
             // Add the options for the plugins
             foreach ( $plugin_options as $plugin => $options ) 
             {
                add_option( $plugin, $options, $options['deprecated'], 'yes' );
             }
          }
    
          // _EDIT #2:_ return the initial array for use in a global
          return $plugin_options
        }
    
    } // END Class MotherOfAllPlugins
    
    } // endif;
    

    Чтобы получить параметры плагина внутри вашей темы:

    // Now we take the return value & add it into global scope for further useage.
    // This way we can access all options easily without a call to the DB.
    // You can now access these values from anywhere in your theme.
    $all_plugin_options = get_all_plugin_options();
    

    Будьте осторожны, добавляйте параметры именно так, как это делают плагины. Остальные вещи не будут работать.

    • 0
  3. Вы можете поместить что-то подобное в файл function.php вашей темы. Таким образом, он запускается только один раз (когда тема активирована).

    add_option('my_initial_options', false);
    
    if ( get_option('my_initial_options')== false ){
        addmyOptions();
        update_option( 'my_initial_options', true,'','yes' );
    }
    
    function addmyOptions(){
    
    update_option("posts_per_page",1);
    update_option( 'show_on_front', 'page' );
    
    }
    
    • 0
  4. Не уверен, что что-то подобное возможно, но обходным путем было бы использование фиктивной базы данных установки WP по умолчанию, настроенной со всеми этими плагинами. Теперь, когда вам нужно настроить другой сайт, поместите эту базу данных и отредактируйте домашний URL-адрес и URL-адрес сайта.

    • 0

Оставить ответ

You must login to add an answer.