web-dev-qa-db-fra.com

Widgets de barre latérale personnalisée par page .. possible?

Disons que je fais un site sur les voitures et que dans la zone de contenu principale d'une page (en utilisant un certain modèle), il y a quelques paragraphes sur une voiture particulière.

Dans la barre latérale, plusieurs widgets standard. Mais je veux aussi un widget avec un "panneau d'information" sur la voiture en question.

Alors, quel est le moyen le plus sain de mettre un widget par page dans Wordpress? J'imagine que, idéalement, le panneau d'information pourrait être entré via l'édition de page standard dans Wordpress. Peut-être via les champs personnalisés, afin de pouvoir entrer "Volvo" pour le champ Fabricant et s'afficher dans la barre latérale. (ou est-ce quelque chose qu'un plug-in couvre déjà?)

3
cannyboy

Vous voulez le plug-in de logique de widget si vous allez utiliser des widgets pour le faire. Cependant, comme vous l'avez deviné, ce n'est pas la meilleure façon de le faire. Je pense que le meilleur moyen d’atteindre ce que vous voulez faire est de créer un widget personnalisé qui accède aux informations sur les publications s’il détecte qu’elles se trouvent sur la bonne page. Quelque chose comme ça:

global $wp_query;
$custom_data = get_post_meta( $wp_query->post->ID, 'your_custom_postmeta_key', true );
if( is_page() && !empty( $custom_data ) ){
  echo $before_widget . $before_title . $title . $after_title;
  echo apply_filters( 'the_content', $custom_data );
  echo $after_widget;
}

Si vous vous en tenez à l'intérieur de la structure de widget normale , ce serait très efficace pour créer un widget par page qui apparaît uniquement si vous êtes sur une page. et cette page a le méta-contenu pertinent pour le widget. À ce stade, vous pouvez simplement utiliser les champs personnalisés déjà fournis par WordPress sur les pages pour saisir le contenu personnalisé.

2
John P Bloch

Certains plugins vous permettent de le faire. contextual-widgets par exemple. L'autre façon consiste à créer une barre latérale différente pour le modèle "page"/"post".

Une autre façon consiste à insérer dans votre sidebar.php un code statique qui vérifie si vous êtes dans "page" ou "unique" et, le cas échéant, "imprime" les informations entrées dans les champs personnalisés.

2
hannit cohen

Je peux contrôler avec succès l'affichage du widget avec le plugin Widget Contexts For WordPress . J'aime la façon dont Semiologic Pro le fait. C'est un plugin basé sur l'adhésion, donc vous ne savez pas si c'est ce que vous cherchez:

alt text

Il fournit un ensemble d'options d'affichage pour tous les widgets de toute barre latérale.

2
hakre
0
Thomas Jensen