Based on this statement…
note: i want their profile called MY ACCOUNT to be on the nav bar
… and other parts of your description, I think what you want is not really to have pages that are “only members that are logged in”. Despite the title of the questions, it sounds like you want a page that will show the current user’s profile, which does only make sense for logged in users, but it is somewhat different than the title implies. Assuming that interpretation is correct…
Make a template file for you page
It should look something like this:
<?php
/**
* Template Name : CurrentProfile
*/
if (is_user_logged_in()) {
global $current_user;
get_currentuserinfo();
// now you should have a data in $currentuser;
// basically the *_users table data for the current user; see the Codex
// get additional user data if desired
$umeta = get_user_meta($current_user->ID);
// now you have the *_usermata data for the current user
} else {
// user is not logged in
// do something or nothing as you please
}
Now make a page from the backend and assign this template to it. You now have a menu problem.
The menu Problem
It is easy to assign a menu item for this page but you probably don’t want it showing up at all for user who are not logged int. The easiest solutions is CSS. If your theme uses the body_class
function as it should, the <body
tag for your page will have the logged-in
for logged-in users, so use your stylesheet to hide the menu by default and show it only for pages with logged-in
in the <body>
tag. I can’t write the CSS off the top of my head and it may be dependent upon your theme anyway.
That isn’t the only solution. You create a custom walker for your menu or maybe hook into the walker, but the CSS solution is easiest and should be more than adequate.
Additional reference
http://codex.wordpress.org/Function_Reference/get_currentuserinfo
http://codex.wordpress.org/Function_Reference/get_user_meta