WordPress : Contenu modifiable personnalisé pour la page d’accueil de Theme Customizer

Publié par Jean-Michel le

J’ai développé un thème très basique avec des traits de soulignement. Je recherche un contenu modifiable personnalisé ou une page modifiable à partir du personnalisateur de thème pour front-page.php.

Par exemple, lorsqu’un utilisateur accède à Customizer, il voit l’option de sélectionner des pages pour le contenu en vedette ( pages prégénérées dans WordPress ) et un bouton « Lire la suite » qui lui est attaché, et l’utilisateur peut sélectionner des images pour chaque zone en vedette.

par exemple:

Solution n°1 trouvée

C’est une idée intéressante d’utiliser le personnalisateur de thème pour créer complètement la page d’accueil. Voici comment je commencerais.

Commençons par créer une section qui ne s’affiche que sur la page d’accueil :

add_action( 'customize_register', 'wpse_205445_customizer' );
function wpse_205445_customizer($wp_customize) {
     $wp_customize->add_section( 'custom-front-page', array(
           'title'           => "Custom Front Page",
           'priority'        => 10,
           'active_callback' => 'is_front_page'
     ));
}

Deuxièmement, faisons quelques réglages. Juste un exemple ici, une liste déroulante pour sélectionner la configuration de la page principale. Attention, cela transportdoit être refresh, car nous aurons besoin d’un chargement complet de la page plus loin.

$wp_customize->add_setting('main-page-setup', array(
    'default'                   =>  '',
    'type'                      =>  'theme_mod',
    'capability'                =>  'edit_theme_options',
    'theme_supports'            =>  '',
    'transport'                 =>  'refresh',
    'sanitize_callback'         =>  'sanitize_text_field'
    ));

Troisièmement, le paramètre doit avoir un contrôle :

$control_args = array(
    'label'                     =>  'My Main Page Setup',
    'section'                   =>  'custom-front-page',
    'settings'                  =>  'main-page-setup',
    'priority'                  =>  20,
    'type'                      =>  'select',
    'choices'                   =>  array('one-column', 'twocolumns', 'threecolumns'),
    );
$wp_customize->add_control( new WP_Customize_Control ($wp_customize, 'main-page-setup', $control_args));

Nous avons maintenant une sélection déroulante dans le personnalisateur, qui s’affiche uniquement sur la page d’accueil, qui propose trois options. Passons maintenant à front-page.php. Ici, nous devons appeler ce mod :

$main-page-setup = get_theme_mod('main-page-setup');
switch ($main-page-setup) {
    case 'one-column'    : get_template_part ('front-page-one-column');
    case 'two-columns'   : get_template_part ('front-page-two-columns');
    case 'three-column ' : get_template_part ('front-page-three-columns');
    default              : get_template_part ('front-page-default');
    }

Donc, voilà, une méthode pour modifier complètement la mise en page de votre page d’accueil à l’aide du personnalisateur. Bien entendu, au lieu de charger des éléments de modèle, vous pouvez également basculer entre les images ou entre différentes requêtes de publication pour modifier le contenu.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *