phpwordpresspostscustom-pages

wordpress looping through posts in custom php page


I trying to loop through posts in a custom php page but no matter what I do, no posts are found here is the code I wrote in my-custom-page.php

<?php 
require_once("/wp-load.php");
get_header();?>
<div id="blog">
<?php if(have_posts()) : ?>
 <?php echo"anything"; ?>
<?php endif; ?>
</div>
<?php get_footer();?>

Solution

  • You should require wp-load.php via the full path to this file.

    Hardcoded example:

    require_once("user/home/public-html/wordpress/wp-load.php");
    

    Softcoded example (suposing your file is in the same directory as WordPress):

    require_once(dirname(__FILE__)."/wp-load.php");
    

    You have also to query the posts before you display them. So, you need to add this line to your code:

    query_posts('post_type=post');
    

    The query arguments may vary depending on what you want to display. Some of them are the member variables of the WP_Post class. Go to https://codex.wordpress.org/Class_Reference/WP_Post for reference.

    Here you have a re-writing of your code that displays the titles of the 30 latest posts published:

    <?php
    require_once(dirname(__FILE__)."/wp-load.php");
    query_posts('post_type=post&showposts=30');
    get_header();?>
    <div id="blog">
    <?php
    if (have_posts()) :
       while (have_posts()) :
          the_post();
             the_title();
             echo '<br />';
       endwhile;
    else :
        echo 'Sorry, no posts found.';
    endif;?>
    </div>
    <?php get_footer();