web-dev-qa-db-fra.com

Ajouter une nouvelle zone de widget de pied de page avec des options limitées?

J'essaie d'ajouter une nouvelle zone de widget de pied de page à mon thème. J'ai pu ajouter la nouvelle zone de widget de pied de page et cela fonctionne correctement. Mais je voudrais limiter ce que l'utilisateur final peut faire avec la zone des widgets. En ce moment, l'utilisateur peut ajouter n'importe quel widget qu'il souhaite dans la nouvelle zone des widgets de pied de page.

J'aimerais limiter la zone du widget à une ligne de texte telle qu'une déclaration de droit d'auteur. Est-ce possible avec des zones de widgets? Comment dois-je m'y prendre pour le limiter à une simple ligne de texte?

3
user1822824

Les zones de widgets sont les mauvais outils pour ce dont vous avez besoin. Ils sont construits pour offrir un choix. Casser cela serait très difficile… et difficile à comprendre pour l'utilisateur.

Alternative: utilisez un paramètre personnalisé, par exemple dans wp-admin/options-general.php où le slogan et le titre du site sont. Il y a même un crochet pour de tels ajouts:

do_settings_sections('general');

Tout d’abord, attendez l’action admin_init, puis enregistrez un nouveau champ de paramètres:

add_filter( 'admin_init', 'wpse_76943_register_setting' );

function wpse_76943_register_setting()
{
    register_setting( 'general', 'footer_text', 'trim' );

    add_settings_field(
        'footer_text',
        'Footer text',
        'wpse_76943_print_input',
        'general',
        'default',
        array ( 'label_for' => 'footer_text' )
    );
}

Facile. Nous avons maintenant besoin d’une fonction pour imprimer ce champ. Utilisez un champ de saisie de texte classique avec une classe large-text pour le rendre suffisamment large:

function wpse_76943_print_input()
{
    $value = esc_attr( get_option( 'footer_text' ) );
    print "<input type='text' value='$value' name='footer_text' id='footer_text'
    class='large-text' />
    <span class='description'>Text for the footer.</span>";
}

enter image description here

C'est tout!

Pour utiliser le texte de pied de page dans votre thème, vérifiez s'il y a une valeur, puis imprimez-la:

if ( $footer_text = get_option( 'footer_text' ) )
    print "<p>$footer_text</p>";

J'ai écrit un plugin faisant presque la même chose, il est juste plus flexible: Données de contact publiques ( Télécharger en tant que Archive Zip ).

8
fuxia