I found this example here of creating a custom blog post page:
http://www.wpbeginner.com/wp-themes/how-to-create-a-custom-homepage-in-wordpress/
1) I created a blog page under Pages > Add New 2) Under Template, I select "Blog" 3) Note that I created a blog.php file in my custom theme that has this content:
<?php
/*
Template Name: Blog
*/
?>
<?php
echo "Hello World";
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('posts_per_page=5'.'&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
4) In settings > reading, under "Front page displays", I set "Posts page:" to "Blog"
Now I view my blog page in browser, it just renders all my posts. But it doesnt echo the "Hello World" and if I remove the code from blog.php, it has no effect! It still just renders all the posts. And then I try to add a custom query:
<?php
/*
Template Name: Blog
*/
?>
<?php
global $wpdb;
$content = $wpdb->get_row(
$wpdb->prepare(
"SELECT * FROM $wpdb->posts
WHERE post_type = %s
LIMIT 1
",
'header_post'
)
);
echo $content->post_content;
?>
And again it ignores this and just renders all the posts with post_type of post and a post_status of publish.
Obviously, the code in my blog.php is being ignored. Why?
This is what it currently looks like too (post date is missing, comment is missing):
I made changes to the index.php in my theme:
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('posts_per_page=1'.'&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
and still no effect.