web-dev-qa-db-ja.com

ページラインのDMSオプションパネルのサイトタイトルとタグライン

私はPagelines DMSテーマを使用していて、フロントエンド管理パネルの機能を拡張したいです。これを構築しているユーザーは、このページから直接いくつかの設定(サイトのタイトルとタグラインなど)を編集できるようにしたいと考えています。

概念: enter image description here

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 AP​​I設定>一般設定サブメニューページ?

3
Luke

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回更新する必要があることです。

誰もがこれを改善することができれば私に知らせてください。

1
Luke