web-dev-qa-db-fra.com

En-tête de texte personnalisé

Je développe un thème WordPress et souhaite utiliser un en-tête personnalisé sur la page d'accueil (j'utilise un modèle de page personnalisé).

Je voudrais que cet en-tête n'inclue pas une image, mais plutôt une balise <h1> et <h2> et un lien.

Ma question est donc la suivante: comment puis-je fournir aux utilisateurs la possibilité de mettre à jour les en-têtes et le lien dans l'en-tête à partir du backend admin? Est-ce que add_theme_support( 'custom-header' ); conviendrait à cela puisque j'ai besoin d'ajouter mes propres champs? Et comment procéder pour désactiver complètement la prise en charge de l'image et afficher le texte dans mon modèle de page?

2
Ian Muscat

Fichier: functions.php

C'est aussi simple que de l'ajouter à votre fichier functions.php (bien sûr, avec $wpse67109 set).

add_theme_support( 'custom-header', $wpse67109_defaults );

Fichier: index.php ou tout autre modèle

Il suffit simplement de ne pas ajouter les éléments get_head_image() et get_custom_header()->foo au complet.

Votre partie de modèle de titre pourrait ressembler à l'exemple suivant:

<header>
    <hgroup>
        <h1 class="site-title">
            <?php
            if ( display_header_text() )
            {
                printf(
                     '<a href="%s" title="%s" rel="home">%s</a>'
                    ,esc_url( home_url( '/' ) )
                    ,esc_attr( get_bloginfo( 'name', 'display' ) )
                    ,get_bloginfo( 'name' )
                );
            } 
            ?>
        </h1>
        <?php if ( '' !== get_bloginfo( 'description' ) ) : ?>
            <h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
        <?php endif; ?>
    </hgroup>
</header>
2
kaiser