Gli hook / filtri di WordPress si inseriscono prima del contenuto o dopo il titolo
-
-
In questo caso: assicurati che latuafunzione restituisca comunque $ content (senonmodificata).In this case: just make sure your function returns $content anyway (when unmodified).
- 0
- 2020-04-30
- Bigue Nique
-
2 risposta
- voti
-
- 2012-01-24
Usa semplicementeilfiltro
the_content
,adesempio:<?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' ); ?>
Fondamentalmente,aggiungiil contenuto delpost dopo iltuo contenutopersonalizzato,quindi restituisciil risultato.
Modifica
Come sottolinea Franky @bueltgenel suo commento,ilprocesso è lo stessoperiltitolo delpost; aggiungi semplicemente unfiltro all'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' ); ?>
Tienipresente che,in questo caso,aggiungiiltuo contenutopersonalizzato dopo iltitolo. (Nonimporta quale; ho semplicemente seguito quello che hai specificatonellatua domanda.)
Modifica 2
Ilmotivoper cuiil codice diesempiononfunziona èperché restituisci
$content
solo quandoiltuo condizionale è soddisfatto . Devi restituire$content
,nonmodificato,comeelse
altuo condizionale. adesempio: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' );
In questomodo,peri postnon deltipo di articolo "proprietà",viene restituito
$content
,nonmodificato.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.-
inoltre èpossibile aggiungere contenuto dopoiltitolo;ilfiltrothe_title èilgancio destro.also it is possible to add content after title; the filter the_title is the right hook.
- 0
- 2012-01-24
- bueltge
-
Domanda @ChipBennett - comefarlo con la logica soloper untipo dipostpersonalizzato - Hoprovato a racchiuderloin `if (is_single () && 'property'==get_post_type ()) {}`manon hafunzionatoperme@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 - Hofunzionato sulmiotipo dipostpersonalizzato,mail contenuto scompare da qualsiasi altrotipo dipost.Vedimodifica sopra.@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
-
Questoperchénon stai restituendo "$ content"pertipi dipost diversi daltipo dipostpersonalizzato.Vedi risposta aggiornata.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
-
Solo unanota:non ènecessarioilbloccoelse {},soloil ritorno di riserva.Se la condizione è soddisfatta,il ritornoin if ()ti portafuori dallafunzione,se superiif () allorail ritorno difallback colpirà.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
-
Vero,il `return $ content;`potrebbeessereestratto dal condizionale `if/else`.Lomettoprincipalmente dove sitrova come aiutoper comprendere la logica di ciò che viene restituito,comee perché.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
-
puoimettereilterzo argomentoper laprioritànellafunzione add_filter.you can put the third argument for priority in the add_filter function.
- 0
- 2016-06-09
- Andrew Welch
-
Grazieper Edit 2 Hook.Dopo unpo 'di lavoro,potrebbeesserein grado diecheggiare alcuni shortcode dopoil contenuto.Vecchiopostmafunzionantein 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' );
Iltag condizionale
is_singular
controlla se viene visualizzato un singolopostvisualizzatoe consente di specificareilparametro $post_types chein questo caso èproprietà.Inoltre,potresti voleresaminare
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
-
In ritardo algioco qui,ma stai restituendo una variabile vuotanell'istanza cheis_singular ('proprietà') restituiscefalse.Se siinverte la logicain questo casoe si restituisce semplicemente $ contentin questo caso,si otterrà un codicepiùpulitoe leggibile.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
-
Potrebbe anche aggiungere altro o utilizzare un operatoreternario.È un rapidoesempionon completamentetestato chepuòessereesteso.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
provando ainserire contenutoprima del contenuto delpostnelmiofunctions.php - so come usarei normali hook wp,manon sono sicuro di comeinserirliin altre aree.
Hoprovato,maeliminai contenuti su qualsiasi altrotipo dipost:
Come lo rendo condizionale?