WordPress-Hooks / Filter werden vor dem Inhalt oder nach dem Titel
-
-
In diesem Fall: Stellen Sieeinfach sicher,dass Ihre Funktiontrotzdem $ content zurückgibt (wennnichtgeändert).In this case: just make sure your function returns $content anyway (when unmodified).
- 0
- 2020-04-30
- Bigue Nique
-
2 Antworten
- Stimmen
-
- 2012-01-24
Verwenden Sieeinfach den Filter
the_content
,z. B.:<?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' ); ?>
Grundsätzlich hängen Sie den Post-Inhalt nach Ihrembenutzerdefinierten Inhalt an undgeben dann das Ergebnis zurück.
Bearbeiten
Wie Franky @bueltgein seinem Kommentarbetont,ist der Vorgangfür den Post-Titel dergleiche. Fügen Sieeinfacheinen Filter zum
the_title
-Hook hinzu:<?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' ); ?>
Beachten Sie,dass Siein diesem Fall Ihrenbenutzerdefinierten Inhalt nach dem Titel anhängen. (Es spielt keine Rolle,welche;ich habemichnur an dasgehalten,was Siein Ihrer Frage angegeben haben.)
Bearbeiten Sie 2
Der Grund,warum Ihr Beispielcodenichtfunktioniert,ist,dass Sie
$content
nur zurückgeben,wenn Ihre Bedingungerfülltist . Siemüssen$content
unverändert alselse
an Ihre Bedingung zurückgeben. z. B.: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' );
Auf diese Weise wirdfür Posts,dienicht vom Post-Typ 'property' sind,
$content
unverändert zurückgegeben.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.-
Esist auchmöglich,Inhaltenach dem Titel hinzuzufügen.Der Filterthe_titleist der richtige Hook.also it is possible to add content after title; the filter the_title is the right hook.
- 0
- 2012-01-24
- bueltge
-
@ChipBennett Frage - wieman dasmit Logiknurfüreinen benutzerdefinierten Beitragstypmacht - Ich habe versucht,esin `if (is_single () && 'property'==get_post_type ()) {}` zu verpacken,aber das hatbei mirnichtfunktioniert@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 - Ich habeesfürmeinen benutzerdefinierten Beitragstyp zum Laufengebracht,aber der Inhalt verschwindet vonjedem anderen Beitragstyp.Siehe obenbearbeiten.@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
-
Dies liegt daran,dass Sie "$ content"nichtfür andere Beitragstypen alsfür Ihrenbenutzerdefinierten Beitragstyp zurückgeben.Siehe aktualisierte Antwort.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
-
Nureine Anmerkung - Siebrauchen denelse {} -Blocknicht -nur die Fallback-Rückkehr.Wenn die Bedingungerfülltist,werden Sie durch die Rückgabein if () aus der Funktionentfernt. Wenn Sie dieif () überschreiten,wird die Fallback-Rückgabegetroffen.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
-
Richtig,der `return $ content;` könnte aus der `if/else`-Bedingung herausgezogen werden.Ich setzees hauptsächlich dortein,woes hilft,die Logik dessen zu verstehen,was zurückgegeben wird,wie und warum.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
-
Sie können das dritte Argumentfür die Prioritätin die Funktion add_filtereinfügen.you can put the third argument for priority in the add_filter function.
- 0
- 2016-06-09
- Andrew Welch
-
Dankefür Edit 2 Hook.Nachein wenig Umgehung könnteesmöglich sein,einen Shortcodenach dem Inhalt wiederzugeben.Alter Beitrag,aber Arbeitsatmosphärein 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' );
Das
is_singular
bedingte Tagprüft,obein einzelner Beitrag vorhandenistangezeigt undermöglichtes Ihnen,den Parameter $post_types anzugeben,derin diesem Falleine Eigenschaftist.Vielleichtmöchten Sie auch
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
-
Spät zum Spiel hier,aber Siegeben eine leere Variablein der Instanz zurück,dieis_singular ('property')false zurückgibt.Wenn Sie dort Ihre Logikinvertieren undin diesem Falleinfach $ content zurückgeben,erhalten Sie saubereren,besser lesbaren Code.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
-
Könnte auchelse hinzufügen odereinen ternären Operator verwenden.Esistein schnelles Beispiel,dasnicht vollständiggetestet wurde underweitert werden kann.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
versucht,Inhalte vor dem Post-Inhaltin meinefunctions.phpeinzufügen - Ich weiß,wieman dienormalen wp-Hooks verwendet,bin mir abernicht sicher,wieich siein andere Bereicheeinfügen soll.
Versuchte dies,aberesbeendet Inhalte aufjedem anderen Beitragstyp:
Wiemacheich diese Bedingung?