आपके द्वारा "सामान्य" पोस्ट प्रकारों (पोस्ट, पेज) के संपादन को अक्षम कर दिया गया है।
यह उतना कठिन नहीं है जितना कि आप विश्वास कर सकते हैं। कुंजी है उपयोगकर्ता लॉगिन नाम । ऐसा ही टैक्सोनोमी या शर्तों के साथ भी किया जा सकता है।
निम्नलिखित देखें (क्वेरी के लिए एक उदाहरण भी है):
// 1st: Add a post type for that user with it's
// user login & according capabilities
function create_user_home() {
global $current_user;
get_currentuserinfo();
register_post_type(
'home_of_'.$current_user->user_login,
array(
'public' => true,
'capability_type' => $current_user->user_login,
'capabilities' => array(
'publish_posts' => 'publish_'.$current_user->user_login,
'edit_posts' => 'edit_'.$current_user->user_login,
'edit_others_posts' => 'edit_'.$current_user->user_login,
'delete_posts' => 'delete_'.$current_user->user_login,
'delete_others_posts' => 'delete_others_'.$current_user->user_login,
'read_private_posts' => 'read_private_'.$current_user->user_login,
'edit_post' => 'edit_'.$current_user->user_login,
'delete_post' => 'delete_'.$current_user->user_login,
'read_post' => 'read_'.$current_user->user_login,
),
)
);
}
add_action( 'init', 'create_user_home' );
// A query could be done like this:
wp_reset_query(); // to be sure
global $wp_query, $current_user;
get_currentuserinfo();
$query_user_home = new WP_Query( array(
,'order' => 'ASC'
,'post_type' => 'home_of_'.$current_user->user_login
,'post_status' => 'publish'
) );
if ( $query_user_home->have_posts() ) :
while ( $query_user_home->have_posts() ) : $query_user_home->the_post();
// check for password
if ( post_password_required() ) :
the_content();
elseif ( !current_user_can('') ) :
// display some decent message here
return;
else :
// here goes your content
endif;
endwhile;
else : // else; no posts
printf(__( 'Nothing from Mr./Mrs. %1$s so far.', TEXTDOMAIN ), $current_user->user_firstname.' '.$current_user->user_lastname);
endif; // endif; have_posts();
wp_rewind_posts(); // for a sec. query
टैक्सोनॉमीज़ के साथ, यह और भी अधिक समझ में आता है, क्योंकि आप केवल उन पोस्टों को क्वेरी कर सकते हैं, जो इस उपयोगकर्ता टैक्सोनॉमीज़ की शर्तों के साथ टैग की गई हैं, लेकिन इसके लिए उपयोगकर्ताओं को टैक्सोनॉमी शर्तों वाले पोस्ट मेटा बॉक्स की आवश्यकता होगी। शर्त एक ही होगी: उपयोगकर्ता लॉगिन नाम और आप सिर्फ टैक्सोनॉमी जोड़ेंगे:
function create_user_tax() {
if ( current_user_can("$current_user->user_login") ) :
global $current_user;
get_currentuserinfo();
$singular = $current_user->user_login;
$plural = $singular.'\'s';
// labels
$labels = array (
'name' => $plural
,'singular_name'=> $singular
);
// args
$args = array (
'public' => true
,'show_in_nav_menus' => true
,'show_ui' => true
,'query_var' => true
,'labels' => $labels
,'capabilities' => array(
'manage_'.$current_user->user_login
)
);
// Register
register_taxonomy (
$current_user->user_login
,array ( 'post', 'page' )
,$args
);
// Add to post type
// you can even add your current user post type here
register_taxonomy_for_object_type (
$current_user->user_login
,array ( 'post', 'page', 'home_of_'.$current_user->user_login )
);
endif;
}
add_action( 'init', 'create_user_tax' );
क्षमता की जांच (current_user_can) की नियुक्ति कहीं और भी हो सकती है। आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है। बस यह सुनिश्चित करने के लिए: ये उदाहरण हैं कि आप अपने मार्ग पर आपका मार्गदर्शन करें। आशा है कि मदद करता है :)