私はPagelines DMSテーマを使用していて、フロントエンド管理パネルの機能を拡張したいです。これを構築しているユーザーは、このページから直接いくつかの設定(サイトのタイトルとタグラインなど)を編集できるようにしたいと考えています。
概念:
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(
'id' => 'blogname',
'type' => 'text',
'label' => __('blog Name', 'pagelines')
),
// Regular Options Engine
array(
'id' => 'blogdescription',
'type' => 'text',
'label' => __('blog description![enter image description here][1], 'pagelines')
),
)
);
// Finally we return the new array
return $settings;
}
テキストフィールド内でこれを実行する方法はありますか(たとえば、独自のサイトタイトルとタグラインを追加する)、サイトのフロントエンドに出力してWP API設定>一般設定サブメニューページ?
OK、
だから私は私の問題に対する解決策を見つけました。
Pagelinesは、wp_optionsテーブルのpl_settingsという独自のオプションで、各キーと値のペアをJSON文字列にエンコードします。
また、次のようにして、これらのキー - >値の各ペアにアクセスすることもできます。$ 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;
}
このように機能させることの唯一の欠点は、実際に対応するオプションを有効にするために、いずれかの値を更新したらブラウザを2回更新する必要があることです。
誰もがこれを改善することができれば私に知らせてください。