Les crochets / filtres WordPress s'insèrent avant le contenu ou après le titre
-
-
Dans ce cas: assurez-vous simplement que votrefonction renvoie quandmême $ content (lorsqu'ellen'estpasmodifiée).In this case: just make sure your function returns $content anyway (when unmodified).
- 0
- 2020-04-30
- Bigue Nique
-
2 réponses
- votes
-
- 2012-01-24
Utilisez simplement lefiltre
the_content
,parexemple:<?php function theme_slug_filter_the_content( $content ) { $custom_content = 'YOUR CONTENT GOES HERE'; $custom_content .= $content; return $custom_content; } add_filter( 'the_content', 'theme_slug_filter_the_content' ); ?>
Engros,vous ajoutez le contenu dumessage après votre contenupersonnalisé,puis vous renvoyez le résultat.
Modifier
Comme le souligne Franky @bueltge dans son commentaire,leprocessusest lemêmepour letitre dumessage; ajoutez simplement unfiltre au hook
the_title
:<?php function theme_slug_filter_the_title( $title ) { $custom_title = 'YOUR CONTENT GOES HERE'; $title .= $custom_title; return $title; } add_filter( 'the_title', 'theme_slug_filter_the_title' ); ?>
Notez que,dans ce cas,vous ajoutez votre contenupersonnalisé après letitre. (Peuimporte lequel;je suisjuste allé avec ce que vous avez spécifié dans votre question.)
Modifier 2
La raisonpour laquelle votreexemple de codene fonctionnepasest que vous ne renvoyez
$content
que lorsque votre conditionest remplie . Vous devez renvoyer$content
,nonmodifié,sous laforme d'unelse
à votre conditionnel.parexemple:function property_slideshow( $content ) { if ( is_single() && 'property' == get_post_type() ) { $custom_content = '[portfolio_slideshow]'; $custom_content .= $content; return $custom_content; } else { return $content; } } add_filter( 'the_content', 'property_slideshow' );
De cettefaçon,pour les articles quine sontpas dutype depublication "propriété",
$content
est renvoyé,nonmodifié.Just use the
the_content
filter, e.g.:<?php function theme_slug_filter_the_content( $content ) { $custom_content = 'YOUR CONTENT GOES HERE'; $custom_content .= $content; return $custom_content; } add_filter( 'the_content', 'theme_slug_filter_the_content' ); ?>
Basically, you append the post content after your custom content, then return the result.
Edit
As Franky @bueltge points out in his comment, the process is the same for the post title; simply add a filter to the
the_title
hook:<?php function theme_slug_filter_the_title( $title ) { $custom_title = 'YOUR CONTENT GOES HERE'; $title .= $custom_title; return $title; } add_filter( 'the_title', 'theme_slug_filter_the_title' ); ?>
Note that, in this case, you append your custom content after the Title. (It doesn't matter which; I just went with what you specified in your question.)
Edit 2
The reason your example code isn't working is because you only return
$content
when your conditional is met. You need to return$content
, unmodified, as anelse
to your conditional. e.g.:function property_slideshow( $content ) { if ( is_single() && 'property' == get_post_type() ) { $custom_content = '[portfolio_slideshow]'; $custom_content .= $content; return $custom_content; } else { return $content; } } add_filter( 'the_content', 'property_slideshow' );
This way, for posts not of the 'property' post-type,
$content
is returned, un-modified.-
ilest égalementpossible d'ajouter du contenu après letitre;lefiltrethe_titleest le crochet de droite.also it is possible to add content after title; the filter the_title is the right hook.
- 0
- 2012-01-24
- bueltge
-
@ChipBennett question - commentfaire cela avec la logique uniquementpour untype demessagepersonnalisé -j'aiessayé de l'envelopper dans `if (is_single () && 'property'==get_post_type ()) {}`mais celan'apasfonctionnépourmoi@ChipBennett question - how to do this with logic only for a custom post type - I tried to wrap it in `if ( is_single() && 'property' == get_post_type() ) {}` but that didn't work for me
- 0
- 2012-01-25
- Jason
-
@ChipBennett - Je l'aifaitfonctionner surmontype depublicationpersonnalisé,mais le contenu disparaît detout autretype depublication.Voir lamodification ci-dessus.@ChipBennett - I got it working on my custom post type, but the content disappears from any other post type. See edit above.
- 0
- 2012-01-25
- Jason
-
C'estparce que vousne renvoyezpas «$ content»pour lestypes depublication autres quepour votretype depublicationpersonnalisé.Voir la réponsemise àjour.That's because you're not returning `$content` for post types other than for your custom post type. See updated answer.
- 1
- 2012-01-25
- Chip Bennett
-
Juste unenote - vousn'avezpasbesoin dublocelse {} -juste le retour de secours.Si la conditionest remplie,le retour dans leif () vousfait sortir de lafonction,si vous dépassez leif (),le retour de secoursfrappera.Just a note - you don't need the else { } block - just the fallback return. If the condition is met, the return in the if() takes you out of the function, if you make it past the if() then the fallback return will hit.
- 0
- 2012-12-06
- phatskat
-
Vrai,le `return $ content;`pourrait êtreextrait du conditionnel `if/else`.Je l'aiprincipalementmis là oùilestpour aider à comprendre la logique de ce quiest retourné,commentet pourquoi.True, the `return $content;` could be pulled out of the `if/else` conditional. I mainly put it where it is as an aid to understanding the logic of what gets returned, how, and why.
- 0
- 2012-12-06
- Chip Bennett
-
vouspouvezmettre letroisième argument depriorité dans lafonction add_filter.you can put the third argument for priority in the add_filter function.
- 0
- 2016-06-09
- Andrew Welch
-
Mercipour Edit 2 Hook.Après unpeu detravail,pourrait êtreen mesure defaire écho à un code court après le contenu.Ancienpostemais distributeur automatique detravail dans WP 5.4.!!!Thanks for Edit 2 Hook. After a little work around, could be able to echo some shortcode after the content. Old post but working atm in WP 5.4. !!!
- 0
- 2020-07-09
- Rodrigo Zuluaga
-
- 2014-11-02
function property_slideshow( $content ) { if ( is_singular( 'property' ) ) { $custom_content = do_shortcode( '[portfolio_slideshow]' ); $custom_content .= $content; } return $custom_content; } add_filter( 'the_content', 'property_slideshow' );
Labalise conditionnelle
is_singular
vérifie si unmessage au singulieresten courss'afficheet vouspermet de spécifier leparamètre $post_types qui dans ce casest unepropriété.Vouspouvez également consulter
do_shortcode
function property_slideshow( $content ) { if ( is_singular( 'property' ) ) { $custom_content = do_shortcode( '[portfolio_slideshow]' ); $custom_content .= $content; } return $custom_content; } add_filter( 'the_content', 'property_slideshow' );
The
is_singular
conditional tag checks if a singular post is being displayed and enables you to specify the $post_types parameter which in this case is property.Also, you might want to look at
do_shortcode
-
Tard dans lejeuici,mais vous retournez une variable vide dans l'instance quiis_singular ('property') renvoiefalse.Si vousinversez votre logique là-bas,et retournez simplement $ content dans ce cas,vous vous retrouverez avec un codepluspropreet plus lisible.Late to the game here, but you're returning an empty variable in the instance that is_singular( 'property' ) returns false. If you invert your logic there, and simply return $content in that case, you will end up with cleaner, more readable code.
- 0
- 2018-09-13
- Travis Weston
-
Pourrait également ajouter autre chose ou utiliser un opérateurternaire.C'est unexemple rapidepasentièrementtesté quipeut être étendu.Could also add else or use a ternary operator. Its a quick example not fully tested which can be extended.
- 0
- 2018-09-13
- Brad Dalton
essayer d'insérer du contenu avant le contenu de l'article dansmonfunctions.php -je sais comment utiliser les hooks wp classiques,maisje ne saispas comment l'insérer dans d'autres zones.
J'aiessayé ceci,mais celatue le contenu detout autretype demessage:
Commentpuis-je rendre cela conditionnel?