How to only hook on Single.php after content?

The question:

I am currently hooking on the_content() but that goes through the WordPress loop too. How can I only hook on the Single.php page?

Also, is there a way to only look on the first X posts in the WordPress loop?

By the way, I am creating a plugin

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

This will handle appending the content to single posts:

function yourprefix_add_to_content( $content ) {    
    if( is_single() ) {
        $content .= 'Your new content here';
    }
    return $content;
}
add_filter( 'the_content', 'yourprefix_add_to_content' );

Method 2

Just to add to Pippin’s answer, in my case some content were also being shown in other parts of the single page, e.g. sidebar. Checking just is_single() also triggered the content modification in the other areas. Here’s another check so that only the main content will have appended stuff:

function yourprefix_add_to_content( $content ) {

    if( is_single() && ! empty( $GLOBALS['post'] ) ) {

        if ( $GLOBALS['post']->ID == get_the_ID() ) {

            $content .= 'Your new content here';

        }

    }

    return $content;
}
add_filter('the_content', 'yourprefix_add_to_content');


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment