I am creating a wordpress site which will have different sections , which will essentially be pages which can be accessed through a top level menu. Now when I make a post, I dont necessarily want all the posts to appear on the front page but instead while making the post want to choose which page it should be shown in. I cannot find a way to do this in wordpress 3.x. Any help is greatly appreciated.

4 Answers 4


I would solve this using the plugin Advanced Custom Fields.

1) create an ACF item with the following config enter image description here view larger

2) it will show a metabox when editing a Post, where you can select which Page the post should appear

metabox example

3) in your page template, adapt this code to your needs

$the_ID = $post->ID;

$search_posts = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'post',
    'meta_key' => 'show_this_post_on_page'
if($search_posts) {
    foreach($search_posts as $post_found) {
        $key_value = get_post_meta($post_found->ID, 'show_this_post_on_page', true);
        foreach($key_value as $key => $value) {
            if($value==$the_ID) echo 'The post <strong>'.$post_found->post_title.'</strong> should appear in this page';

How many of those pages you have? There are lots of way you can do this.

  1. Normally you can do it via making specific category for each pages.
  2. If you don't want to make extra category for this reason you can make tags for it.
  3. If you want to make some post that will show in homepage. You can use the post_thumbnail() feature and make query in homepage for posts which have post thumbnails only.
  4. Or you can use custom post types is special cases.
  • Can you please point me to some of the plugins that would help me do this ?
    – kabir
    Commented Apr 25, 2011 at 10:57
  • Can't really help you with this if you not coding :) i am not really know this kinds of plugins really well.
    – Sisir
    Commented Apr 25, 2011 at 11:22

If you are familiar with Wordpress code, then you can assign a category or tag to that post then use custom queries on the pages you want to show or hide the tag in and put something like

$query = new WP_Query('category__in=mytag');     
$query = new WP_Query('category__not_in=23');     

You may want to read this in wordpress codex.


If the posts don't have any similarities, you could manually add them to each page you want using the Inline Posts Plugin.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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