WordPress.org

Ready to get started?Download WordPress

Forums

Adding a New Page Without a Tab (14 posts)

  1. rustybulb
    Member
    Posted 5 years ago #

    Hi,

    Is it possible to add a page such as a Privacy page that does not show up as a conspicuous tab?

    I want the small link in the footer to be the only link to the privacy page.

    Thanks

  2. stvwlf
    Member
    Posted 5 years ago #

    You can add an "exclude" to the call to wp-list-pages (which generates the nav tabs in most themes)
    http://codex.wordpress.org/Template_Tags/wp_list_pages
    If you have horizontal nav, generally its located in header.php in your theme folder.

    If you don't want to mess with code, this plugin lets you exclude a page from the Nav menu
    http://wordpress.org/extend/plugins/list-pages-plus/

  3. rustybulb
    Member
    Posted 5 years ago #

    Thank you for your prompt reply.
    I will try one of those.

  4. rustybulb
    Member
    Posted 5 years ago #

    I would like to use the first option and change the code, but how do I know what the page numbers are?

    "Exclude Pages from List:
    Use the exclude parameter to hide certain Pages from the list to be generated by wp_list_pages".

    <ul>
      <?php wp_list_pages('exclude=17,38' ); ?>
    </ul>

    I only have page titles, and can't find the numbers.

    Thanks

  5. rustybulb
    Member
    Posted 5 years ago #

    Still unresolved...

    Thanks

  6. plloi
    Member
    Posted 5 years ago #

    depend on your setup page id's can be found 1 of 2 ways,
    1. go to the page if the url looks like this yoursite.com/blogifnotroot/?page_id=# Then number is the Page id. This might not always display this way.

    2. go to the admincp, Click pages and select the page you want excluded.
    yoursite.com/blogifnotroot/wp-admin/page.php?action=edit&post=#. # is the page id.

    Hope this helps

  7. rustybulb
    Member
    Posted 5 years ago #

    Thank you for your help.
    Ok, my pages don't have numbers - only titles and my Privacy page is cunningly called /privacy/

    So I changed the code to this:

    <ul>
      <?php wp_list_pages('exclude=privacy' ); ?>
    </ul>

    but I had no idea where in the Page code to put it, so I whacked it in the middle, and it messed up. It did not exclude the Privacy page from the tabs, but it did make the two pages I have added appear as extra links underneath the header - Oh no!

    Luckily I had kept the original code, so I undid it.

    My Page Code is below. Please could someone tell me where to put the Exclude code and whether I have it correct in the first place as

    <ul>
      <?php wp_list_pages('exclude=privacy' ); ?>
    </ul>

    Complete Original Page Code:

    <?php
    global $options;
    foreach ($options as $value) {
            if (get_option( $value['id'] ) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_option( $value['id'] ); } }
    ?>
    <?php get_header(); ?>
    <?php if ($flex_feat_display == "no" OR $flex_feat_pages == "home only" OR $flex_feat_pages == "home and posts") { ?>
    	<?php if ( is_front_page() AND $flex_feat_display != "no" ) { ?>
    
    	<div id="feature"><div class="topshadow">
        <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Feature_top') ) : else : ?>
       <?php include (TEMPLATEPATH . '/feature.php'); ?>
        <?php endif; ?><div style="clear:both;"></div>
        </div></div><?php } ?>
    
           <?php } else { ?>
        <div id="feature"><div class="topshadow">
        <?php if ( function_exists('dynamic_sidebar') && dynamic_sidebar('Feature_top') ) : else : ?>
       <?php include (TEMPLATEPATH . '/feature.php'); ?>
        <?php endif; ?><div style="clear:both;"></div>
        </div></div><?php } ?>
    <div id="content">
    
      <div class="postwrap">
      <h2 class="pagetitle">
            <?php the_title(); ?>
          </h2>
    
        <div class="post"> <div class="postcontent">
          <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
          <?php the_content("__('Read the rest of this page')
    "); ?>
          <?php edit_post_link(__('Edit'), '', '
    '); ?>
          <?php endwhile; endif; ?>
        </div></div>
        <?php if(comments_open()) : ?>
        <?php comments_template('', true); ?>
        <?php endif; ?>
      </div>
      <?php get_sidebar(); ?>
    </div>
    <?php get_footer(); ?>

    Thanks a lot

  8. asechrest
    Member
    Posted 5 years ago #

    It won't be in your page.php file. It will likely be in header.php, as stvwlf mentioned, if you have a horizontal navigation bar.

    Pick through your header.php file and look for the section that appears to be the creation of the navigation bar. You'll see a call to

    <?php wp_list_pages(); ?>
    . It is here that you'll ADJUST this line. You shouldn't be adding the line from scratch.

    Also, the exclusion seems to only work by page ID, so using the page title will not result in an exclusion.

    Here's a handy plugin to list the page (and others) ID: Reveal IDs for WP Admin. Use this plugin if you are having trouble following stvwlf's instructions to determine page ID.

  9. rustybulb
    Member
    Posted 5 years ago #

    Thank you, yes the header makes more sense. Sorry I missed that earlier.

    I'll look at the plugin thanks.

  10. yatrik
    Member
    Posted 5 years ago #

    if you want to know your page id, go to edit page under pages and just mouse over the page(don't click the page title), in status bar you will see and id at the end of the link. Just exclude that id.

  11. rustybulb
    Member
    Posted 5 years ago #

    Thank you

  12. rustybulb
    Member
    Posted 5 years ago #

    OK The Privacy page is number 20 so this is the code I need to put in:

    <ul>
      <?php wp_list_pages('exclude=20' ); ?>
    </ul>

    asechrest said I should adjust this line:
    <?php wp_list_pages(); ?>

    but that line is nowhere in my header code. I have this instead:

    <ul>
       <?php if ($flex_nav_home == "no") { ?>
           <?php } else { ?>
        <li><a href="<?php echo get_option('home'); ?>/"><span>Home</span></a></li>
        <?php } ?>
    <?php echo preg_replace('@\<li([^>]*)>\<a([^>]*)>(.*?)\<\/a>@i', '<li$1><a$2><span>$3</span></a>', wp_list_pages('echo=0&orderby=name&exclude=&title_li=&depth=1')); ?>
    </ul>

    How should I adjust this please?

    I just tried putting 20' after exclude= but now I get this:
    "Parse error: syntax error, unexpected '=' in /home/allthe/public_html/wp-content/themes/flexibility2/header.php on line 48"
    where my site should be!

    Thanks

  13. yatrik
    Member
    Posted 5 years ago #

    It doesn't always straight forward line like that. The main is the function. If you see your pasted code properly, you will find that function.

  14. rustybulb
    Member
    Posted 5 years ago #

    Thanks.
    I just deleted the apostrophe after the 20 and it's fine - Phew!

    Thanks everyone!

Topic Closed

This topic has been closed to new replies.

About this Topic