Only show content before more tag

I am using the Siren Template. In homepage.php this code is used to display the portfolio content

print_excerpt(200);

But I to need show the content only before <!--more-->

I have used this:

the_content( $more_link_text, FALSE);

but it is not working. It shows all the content

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You can use the WordPress function get_extended to fetch the different parts of a string (the part before and the part after the <!--more--> tag). get_extended returns an array with three keys, of which the keys main and extended are important: $arr['main'] contains the part before the more tag, and $arr['extended'] the part after the more tag.

This would yield something like:

// Fetch post content
$content = get_post_field( 'post_content', get_the_ID() );

// Get content parts
$content_parts = get_extended( $content );

// Output part before <!--more--> tag
echo $content_parts['main'];

Method 2

Unfortunally it seems like all functions in WordPress that are supposed to render the excerpt (get_extended, get_extended) don’t apply HTML tags nor convert carriage returns in paragraphs as aspected.

If you need to render the excerpt with formatting, I suggest that you use this code:

global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;

With this work-around you are telling to the_content() function that it is inside a loop, getting the content before the more tag.


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

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x