Get the content of a specific page (by ID)

I have the following front-page template made:

enter image description here

Read More

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?

Related posts

9 comments

  1. <?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 );
    
    ?>
    
  2. 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;
    ?>
    
  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;?>
    
  4. 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;
    
  5. 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; ?>
    
  6. For one liner addicts like me. Change 69 by your page ID.

    <?= apply_filters('the_content', get_post(69)->post_content); ?>
    
  7. 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.

  8. Already answered but i think a much more handier function is get_post_field( ‘fieldname’, $post_id );

    So in your case:

    echo get_post_field( 'post_excerpt', $post_id );
    

Comments are closed.