trying to insert content before the post content in my functions.php – I know how to use the regular wp hooks, but unsure how to insert into other areas.
Tried this, but it kills content on any other post type:
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' );
How do I make this conditional?
Just use the
the_content
filter, e.g.: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: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.:This way, for posts not of the ‘property’ post-type,
$content
is returned, un-modified.There was a new hook introduced in 5.2 that triggers after the opening
<body>
tag. No more need to mess with the post content.wp_open_body
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