Afficher le texte de la page d'accueil personnalisée en fonction du domaine
-
-
Avez-vous vu [Comment ajouter un widget spécifique à une seulepage?] (Http://wordpress.stackexchange.com/questions/76959/how-to-add-a-specific-widget-to-only-1-page)?Have you see [How to add a specific widget to only 1 page?](http://wordpress.stackexchange.com/questions/76959/how-to-add-a-specific-widget-to-only-1-page)?
- 1
- 2013-12-28
- fuxia
-
2 réponses
- votes
-
- 2014-01-02
Lameilleure solutionest d'ajouter une zone de widgets quetous les sites ont accès à utiliser,puis d'ajouter un widget detexte.
Commentj'aigéré cela depuis quej'avais unthèmeenfant utilisé,j'ai ajouté unfichierfunctions.phpet copié un double de l'index.php dufichier dethèmeparent dans le dossier duthèmeenfant.
Mes étapes debase étaient lesmêmes que dans la solution @toschopubliée: https://wordpress.stackexchange.com/a/76975/35677
Cela a créé une zone widget surtous les siteset c'est ce queje voulais. Unenote supplémentaire cependantest quemon widget utilise le csset les widgetspersonnalisés duthème quej'utilisais ont demandé unpeu demanipulation. Monthème comprenait des widgetspersonnalisés au-dessus des valeurspar défaut avec unemiseen forme spécialepour le "titre" d'un widget,un "saut de ligne"et ensuite le widget "contenu".
Dansmon cas,j'aipu lefaire agir comme les widgetsnatifs desthèmes avec quelque chose comme:
function welcome() { register_sidebar( array( 'name' => 'Welcome Message', 'id' => 'welcome', 'before_widget' => '<div class="widget-top">', 'after_widget' => '</div>', 'before_title' => '<h4>', 'after_title' => '</h4><div class="stripe-line"></div></div><div class="widget-container">', ) ); } add_action('widgets_init', 'welcome');
Comme vouspouvez le voir,j'ai dû créer unefin debalisepersonnaliséepour que celafonctionne de lamêmemanière.
The best solution is to add a widget area that all sites have access to use and then add a text widget.
How I handled this since I had one child theme being used was I added a functions.php file and copied a duplicate of the index.php from the parent theme file into the child theme folder.
My base steps were the same as in the solution @toscho posted: https://wordpress.stackexchange.com/a/76975/35677
This made a widgetable area across all the sites and this is what I wanted. An additional note though is to have my widget use the css and custom widgets of the theme i was using took a bit of manipulation. My theme included custom widgets ontop of the defaults with special formatting for the "title" of a widget a "line break" and then the widget "content".
In my case I was able to get it to act like the themes native widgets with something like:
function welcome() { register_sidebar( array( 'name' => 'Welcome Message', 'id' => 'welcome', 'before_widget' => '<div class="widget-top">', 'after_widget' => '</div>', 'before_title' => '<h4>', 'after_title' => '</h4><div class="stripe-line"></div></div><div class="widget-container">', ) ); } add_action('widgets_init', 'welcome');
As you can see I had to do some custom tag ending to get it to work the same.
-
- 2014-01-02
Jene leferaispas de cettefaçon lorsque vouspouvez le connecter àpartir de votrefichier defonctions dethèmesenfantset utiliser desbalises conditionnellespourplus de contrôle.
function wpsites_register_home_text_widget() { register_sidebar( array( 'name' => 'Home Text Widget', 'id' => 'home-widget', 'before_widget' => '<div>', 'after_widget' => '</div>', ) ); } add_action( 'widgets_init', 'wpsites_register_home_text_widget' ); add_filter( 'loop_start', 'wpsites_home_text_widget' ); function wpsites_home_text_widget() { if ( is_front_page() && is_active_sidebar( 'home-widget' ) ) { dynamic_sidebar('home-widget', array( 'before' => '<div class="home-widget">', 'after' => '</div>', ) ); } }
Vouspouvez utilisern'importe quel hook ou balise conditionnelle avec ce code. Les WordPress ou les hooks spécifiques à unthème fonctionnenttous avec ce code.
I wouldn't do it that way when you can hook it in from your child themes functions file and use conditional tags for more control.
function wpsites_register_home_text_widget() { register_sidebar( array( 'name' => 'Home Text Widget', 'id' => 'home-widget', 'before_widget' => '<div>', 'after_widget' => '</div>', ) ); } add_action( 'widgets_init', 'wpsites_register_home_text_widget' ); add_filter( 'loop_start', 'wpsites_home_text_widget' ); function wpsites_home_text_widget() { if ( is_front_page() && is_active_sidebar( 'home-widget' ) ) { dynamic_sidebar('home-widget', array( 'before' => '<div class="home-widget">', 'after' => '</div>', ) ); } }
You can use any hook or conditional tag with this code. WordPress or theme specific hooks all work with this code.
-
Ok,je vois unpeu ce que vousfaitesici,mais comment çamarche?Il semble que vous deviez spécifier où dans lapage vous voulez le contenu?Désolé d'essayer d'apprendre lesmeilleurespratiquesici,et nouveau dans ce domaine,lesexplications sont $$$ :-)Ok I kind of see what you are doing here, but how does it work? Seems like you would need to specify where in the page you want the content? Sorry trying to learn best practices here, and new to this so explanations are $$$ :-)
- 0
- 2014-01-02
- Shawn
-
Vouspouvez utilisern'importe quel crochet.Cela dépend de votrethème,mais la questionn'apasfourni cesinformationset indique simplement le haut de lapage.Si vous utilisez unthème comme Genesis,vous utilisez denombreusespositions de crochet.Quelthème utilisez-vouset inclut-il des crochets?You can use any hook. Depends on your theme but the question didn't supply that info and just states top of page. If you're using a theme like Genesis, then you have use of many hook positions. What theme are you using and does it include hooks?
- 0
- 2014-01-02
- Brad Dalton
-
J'utilise unthème quin'apas de hookspersonnalisés répertoriés dans la documentation.Même ainsi,j'aime votreexemple là-bas.Y aurait-il unmoyen de lui dire oùplacer le contenu demanière dynamique?Sije le veuxen dessous de certains éléments de lapage?Sije peux éviter d'avoirbesoin d'avoir cette copie deindex.php duparent,lesmises àjour duthème serontprobablementbeaucoupplusfluides.En ce qui concerne les cadres,je prévois d'utiliser despagelines dans unproche aveniret de créermonproprethème.I am using a theme that does not have any custom hooks listed in the documentation for it. Even so, I like your example there. Would there be a way to tell it where to put the content dynamically? If say I want it below certain elements on the page? If I can prevent needing to have that copy of index.php from the parent then updates to the theme will probably go alot smoother. As far as frameworks I plan on using pagelines in the near future and making my own theme.
- 0
- 2014-01-02
- Shawn
-
Oui,mais dépend duthème de lafacilité ou de la difficulté àmodifier.Avec Genesis,vous changez simplement le crochetpour que ce soitincroyablementfacile http://genesistutorials.com/visual-hook-guide/Yes but depends on the theme as to how easy or hard it is to modify. With Genesis you simply change the hook so its incredibly easy http://genesistutorials.com/visual-hook-guide/
- 0
- 2014-01-02
- Brad Dalton
-
Je vois ce quetu veux dire.C'estplutôtgentil.Je suppose quemonthème a des crochetsen arrière-plan,car vouspouvez activeret désactiver certainesbannièresparexemple.Jepourraisprobablement regarder là-dedans.En ce qui concerneis_front_page () &&is_active_sidebar () dois-je les ajouter àmon code?Y a-t-il uninconvénient àne pas les avoir?Qu'est-ce quipourrait arriver?I see what you mean. That is pretty sweet. I would assume my theme has hooks in the background as you can turn certain banners on and off for example. I could probably look in there. As far as is_front_page() && is_active_sidebar() should I add those to my code? Is there a negative to not having them? What could happen?
- 0
- 2014-01-02
- Shawn
-
is_front_page () renvoietrue uniquementpour lapage d'accueil de votre siteindépendamment de vosparamètres de lectureet de votrepage demessageset is_active_sidebar () s'assure que le divn'estgénéréet le contenu affiché que lorsque le widgetest rempli,donc oui,les deux sontessentielspour ce dont vous avezbesoin.is_front_page() returns true only for the front page of your site regardless of your Reading Settings and Posts Page and is_active_sidebar() makes sure the div is only generated and the content displayed when the widget is populated so yes, both essential for what you need.
- 0
- 2014-01-02
- Brad Dalton
J'utilise lemultisitepour 5 sites.J'ai unthème oùiln'y apas de zone detexteen haut de lapagemaisje veuxmettre untexte d'introduction sur lapage d'accueil.Les 5 sites utilisent actuellement lemêmethèmeenfantpour conserver lemême aspectet lamêmemiseen page.
Quelleest lameilleurefaçon d'ajouter letextepersonnalisé à lapage d'accueil de chaque siteen fonction du domaine?Est-ce queje ferais celaen modifiant le (s)fichier (s)thème (s)enfant (s) avec un shortcodeet functions.php?
Je suis un développeurmais asseznouveau dans wordpress.Unexemple de code simple seraittrès utile.
Pointsbonuset félicitations s'ilexiste unmoyen d'enfaire un widget quipeut êtremodifié dans l'administrateur afin queje puisse changer letexteen dehors du code.