16

I have the following front-page template made:

enter image description here

In place of those large Lorem Ipsum blocks, I need to show an "excerpt" from a specific page to fill that box (a certain number of characters).

How do I get a pages content in String format so that I can echo it out and trim down to a certain number of characters?

25
<?php

// would echo post 7's content up until the <!--more--> tag
$post_7 = get_post(7); 
$excerpt = $post_7->post_excerpt;
echo $excerpt;

// would get post 12's entire content after which you
// can manipulate it with your own trimming preferences
$post_12 = get_post(12); 
$trim_me = $post_12->post_content;
my_trim_function( $trim_me );

?>
| improve this answer | |
22

Here you go !

<?php
$my_id = 5369;
$post_id_5369 = get_post($my_id);
$content = $post_id_5369->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
| improve this answer | |
  • 5
    Please, explain what the code does and how it answers the question. Some users may not understand the code without a little explanation. – cybmeta Nov 16 '15 at 8:16
  • 1
    I really like the way you added the_content filter. +1 for that. – Mohammad Mursaleen May 4 '16 at 7:48
  • Works beautiful! – Charles Xavier Jul 19 '19 at 21:11
  • What does the str_replace do? – netAction Apr 30 at 16:34
  • What is $content = str_replace(']]>', ']]>', $content); for? – Sridhar Katakam Oct 22 at 0:34
4
$post   = get_post( 42 );

$output =  apply_filters( 'the_content', $post->post_content );

echo $output;

from https://developer.wordpress.org/reference/functions/get_post/

| improve this answer | |
3

you can use this code it is work fine change page_id=19 with your page number:

<?php $the_query = new WP_Query( 'page_id=19' ); ?>

<?php while ($the_query -> have_posts()) : $the_query -> the_post();  ?>

                       <?php the_excerpt(); ?>


     <?php endwhile;?>
| improve this answer | |
  • 1
    Wellcome to this site. It seems that thisis your first answer. A explanation of why and how your answer solves the problem is always good. – cybmeta Dec 27 '14 at 17:07
1

If you're in the loop do this:

<?php
$my_excerpt = get_the_excerpt();
if ( $my_excerpt != '' ) {
    // Some string manipulation performed
}
echo $my_excerpt; // Outputs the processed value to the page

Or if you have an ID, get the post then sue the post_excerpt member var

e.g.

$post = get_post( $post_id );
echo $post->post_excerpt;
| improve this answer | |
1

Try this code and just change your page_id:

<?php $my_query = new WP_Query('page_id=20');
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;?>
 <h3><?php the_title(); ?></h3>
    <div class="text">

        <?php echo wp_trim_words( get_the_content(), 15, '...' ); ?>
 <a href="<?php echo get_page_link(); ?>" class="read-more">Read More</a>
    </div>

 <?php endwhile; ?>
| improve this answer | |
1

For one liner addicts like me. Change 69 by your page ID.

<?= apply_filters('the_content', get_post(69)->post_content); ?>
| improve this answer | |
0

Can do this with a shortcode. add the following to function.php

function lorem_func($attr) {
$txt = "<p>Lorem ipsum dolor .........</p>";
shortcode_atts(
 array(
    'repeat' => 1,
 ), $attr
);
return str_repeat($txt, $attr['repeat'] );
}
add_shortcode('lorem', 'lorem_func');

To render within content use;

[lorem repeat="2"]

Just need to mod the "Lorem ipsum dolor ........." for the length required. And the lorum repeat=2 change to the required amount of paragraphs. In the above example =2 means 2 paragraphs, so its multifuctional.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.