Intereting Posts
Каковы различия между «Последние сообщения» и «Статическая страница»? У меня есть вопрос в Basic HTML Изображение детской категории Проблема с созданием ссылки редактирования для настраиваемого типа сообщения ACF-перевод Предотвратить перенаправление wp_login_form () из wp-admin при наличии ошибок Создание глобального массива для сравнения внутри запроса Genesis: как добавить контент после отложенного и до того, как обрезать содержимое Несколько доменов и субдоменов с использованием многоуровневой установки Контактный формуляр 7 – Список населенных пунктов с таксономией Динамический контент в виджетах проблема с сохранением полей пользовательских обменов Показать комментарии к сообщению пользователя только в том случае, если они являются логином Как использовать google api для входа в wordpress Некоторые пользовательские термины таксономии, которые не отображаются в админ. Проблема кэширования?

Blogname и Blogdescription в Pagelines Панель параметров DMS

Я пытаюсь настроить панель параметров переднего плана в структуре pagelines-dms, из которой пользователи смогут изменять blogname и blogdescription. Пока я создал форму, в которой есть текстовые поля «blogname» и «blogdescription», как показано ниже

add_filter('pl_sorted_settings_array', 'add_global_panel2'); function add_global_panel2($settings){ $settings['privacy'] = array( 'name' => 'Blog Name', 'icon' => 'icon-eye-open', 'opts' => array( // Regular Options Engine array( 'key' => 'blogname', 'type' => 'text', 'label' => 'blog Name' ), // Regular Options Engine array( 'id' => 'blogdescription', 'type' => 'text', 'label' => 'blog description' ), ) ); // Finally we return the new array return $settings; } 

Тем не менее, я не уверен, как связать это с вариантами wordpress. Я нашел следующие функции в pagelines-dms editor.settings.php, который я верю, держит ключ к моему успеху, но я не уверен, как его реализовать правильно:

 /* * This class contains all methods for interacting with WordPress' data system * It has no dependancy so it can be used as a substitute for WordPress native functions * The options system inherits from it. */ class PageLinesData { function meta($id, $key, $default = false){ $val = get_post_meta($id, $key, true); if( (!$val || $val == '') && $default ){ $val = $default; } elseif( is_array($val) && is_array($default)) { $val = wp_parse_args( $val, $default ); } return $val; } function meta_update($id, $key, $value){ update_post_meta($id, $key, $value); } function opt( $key, $default = false, $parse = false ){ $val = get_option($key); if( !$val ){ $val = $default; } elseif( $parse && is_array($val) && is_array($default)) { $val = wp_parse_args( $val, $default ); } return $val; } function opt_update( $key, $value ){ update_option($key, $value); } function user( $user_id, $key, $default = false ){ $val = get_user_meta($user_id, $key, true); if( !$val ){ $val = $default; } elseif( is_array($val) && is_array($default)) { $val = wp_parse_args( $val, $default ); } return $val; } function user_update( $user_id, $key, $value ){ update_user_meta( $user_id, $key, $value ); } } 

(копию всего файла можно найти здесь: http://themes.svn.wordpress.org/dms/1.0.2/editor/editor.settings.php )

Если бы кто-нибудь мог помочь, я был бы более чем благодарен.

Заранее спасибо!

Solutions Collecting From Web of "Blogname и Blogdescription в Pagelines Панель параметров DMS"

В порядке,

Поэтому я нашел решение моей проблемы;

Pagelines кодирует каждую пару ключей и значений в строку json внутри своей опции, называемой pl_settings в таблице wp_options.

Они также дают вам доступ к каждой из этих пар ключ-> значение, используя следующее: $ value = pl_setting ('option_key')

Таким образом, я применил следующий код для удовлетворения моих потребностей:

 add_filter('pl_sorted_settings_array', 'add_global_panel2'); function add_global_panel2($settings){ $settings['privacy'] = array( 'name' => 'About Your Loved One', 'icon' => 'icon-heart', 'opts' => array( // Regular Options Engine array( 'key' => 'blogname', 'type' => 'text', 'label' => 'the name of your loved one', 'help' => 'test' ), // Regular Options Engine array( 'key' => 'blogdescription', 'type' => 'text', 'label' => 'a message to your loved one', 'help' => 'test' ), ) ); update_option('blogname', $value = pl_setting('blogname')); update_option('blogdescription', $value = pl_setting('blogdescription')); // Finally we return the new array return $settings; } 

Единственным недостатком в том, чтобы работать с этим таким образом, является то, что мне нужно обновить браузер дважды, обновив одно из значений, чтобы оно действительно вступало в силу с соответствующей опцией.

Если кто-то может это лучше, пожалуйста, дайте мне знать.