web-dev-qa-db-fra.com

Contenu modifiable sur mesure pour la page d'accueil à partir de Theme Customizer

J'ai développé un thème très basique avec des traits de soulignement. Je recherche un contenu modifiable sur mesure, ou une page modifiable, dans le thème Customizer pour front-page.php.

Par exemple, lorsqu'un utilisateur accède à Customizer, l'option de sélection de pages pour le contenu présenté ( dans WordPress ) ainsi que le bouton "En savoir plus" sont joints. l'utilisateur peut sélectionner des images pour chaque zone sélectionnée.

for example:

5
Humaira Naz

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.

Tout d’abord, construisons une section qui ne figure que sur la première page:

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, permet d'effectuer certains réglages. Juste un exemple ici, une liste déroulante pour sélectionner la configuration de la page principale. Attention, transport doit être refresh, car nous aurons besoin d'un chargement de page complet 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 liste déroulante dans le personnaliseur, qui apparaît sur la page d'accueil uniquement, qui donne 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 compléter changer la mise en page de votre page d'accueil en utilisant le personnaliseur. Bien sûr, au lieu de charger des parties de modèle, vous pouvez également basculer entre les images ou entre différentes requêtes de publication pour modifier le contenu.

1
cjbj