versuche, in meiner functions.php Inhalte vor den Post-Inhalten einzufügen - Ich weiß, wie man die regulären wp-Hooks verwendet, weiß aber nicht, wie man sie in andere Bereiche einfügt.
Versuchte dies, aber es löscht den Inhalt eines anderen Beitragstyps:
function property_slideshow( $content ) {
if ( is_single() && 'property' == get_post_type() ) {
$custom_content = '[portfolio_slideshow]';
$custom_content .= $content;
return $custom_content;
}
}
add_filter( 'the_content', 'property_slideshow' );
Wie mache ich das abhängig?
Verwenden Sie einfach den Filter the_content
, z.
<?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 Inhalt der Posts nach Ihren benutzerdefinierten Inhalten an und geben dann das Ergebnis zurück.
Wie Franky @bueltge in seinem Kommentar ausführt, ist der Vorgang für den Post-Titel derselbe. Fügen Sie einfach einen Filter zum Hook the_title
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 Sie in diesem Fall Ihren benutzerdefinierten Inhalt nach dem Titel anhängen. (Es spielt keine Rolle, ich habe mich nur an das gehalten, was Sie in Ihrer Frage angegeben haben.)
Der Grund, warum Ihr Beispielcode nicht funktioniert, ist, dass Sie nur $content
zurückgeben, wenn Ihre Bedingung erfüllt ist . Sie müssen $content
unverändert als else
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 wird für Posts, die nicht den Post-Typ 'property' haben, $content
unverändert zurückgegeben.
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 Tag is_singular
conditional prüft, ob ein einzelner Beitrag angezeigt wird, und ermöglicht es Ihnen, den Parameter $ post_types anzugeben, der in diesem Fall eine Eigenschaft ist.
Vielleicht möchten Sie auch do_shortcode
ansehen.