web-dev-qa-db-fra.com

Affichage manuel du widget

J'ai actuellement un widget qui doit être affiché manuellement sur la page d'accueil. Le reste des pages est affiché dans la barre latérale du widget (ceci est accompli avec la "Logique du widget"), mais sur la page de couverture, je dois l'afficher dans une zone différente. J'ai essayé d'utiliser the_widget () mais le problème est qu'il n'affiche aucune des données enregistrées pour le widget. Comment puis-je afficher manuellement le widget et obtenir mes données enregistrées pour l'affichage du widget?

SOLUTION: C'est le code qui a fini par résoudre mon problème. En gros, vous pouvez récupérer les données du widget en utilisant get_option. J'ai fait un var_dump du résultat et j'ai trouvé le tableau que je voulais et je l'ai réintégré dans la fonction_widget. Je suppose que le seul problème ici est que si un utilisateur supprime le widget et le refait, la clé de tableau changera très probablement. Mais ça marche pour le moment.

if(function_exists('the_widget')) {
$instance = get_option( 'widget_backspikewidget' ); 
the_widget('BackSpikeWidget', $instance[2]);
}
3
greatwitenorth

J'aime la réponse que vous avez trouvée, mais j'ai pensé virer de bord.

Vous pouvez créer une autre zone de la barre latérale affichée uniquement sur la page d'accueil, puis utiliser le plug-in "Duplicate Widget" pour gérer deux instances d'un seul.

Les frais généraux sont légèrement plus élevés, mais il devient beaucoup plus facile à maintenir pour ceux qui ne codent pas.

1
mrwweb