web-dev-qa-db-fra.com

Titre du site et slogan dans le panneau d'options DMS de Pagelines

J'utilise le thème DMS Pagelines et je souhaite étendre les fonctionnalités du panneau d'administration front-end. Le ou les utilisateurs pour lesquels je construis souhaite pouvoir modifier quelques paramètres directement à partir de cette page, notamment le titre du site et le slogan.

Concept: 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;
}

Y a-t-il un moyen de faire cela (ajouter leur propre titre de site et leurs propres balises) dans un champ de texte, par exemple, cliquer sur le bouton Options de publication pour le générer au début du site et afficher une version mise à jour dans le WP Paramètres de l'API> page du sous-menu Paramètres généraux?

3
Luke

D'accord,

J'ai donc trouvé une solution à mon problème.

Pagelines encode chaque paire clé/valeur dans une chaîne json, dans sa propre option appelée pl_settings dans la table wp_options.

Ils vous donnent également accès à chacune de ces paires clé-> valeur à l'aide des éléments suivants: $ value = pl_setting ('option_key')

Ainsi, j'ai choisi d'utiliser le code suivant pour répondre à mes besoins:

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

Le seul inconvénient de cette méthode est que je dois actualiser le navigateur deux fois une fois, en mettant à jour l'une ou l'autre des valeurs pour que celle-ci prenne réellement effet sur l'option correspondante.

Si quelqu'un pouvait mieux cela alors s'il vous plaît faites le moi savoir.

1
Luke