Thông báo này ngụ ý rằng bạn đã vô hiệu hóa việc chỉnh sửa các loại bài đăng "bình thường" (bài đăng, trang).
Nó không khó như bạn có thể tin. Các chìa khóa là tên người dùng đăng nhập . Điều tương tự có thể được thực hiện với các nguyên tắc phân loại hoặc thậm chí các điều khoản.
Xem phần sau (cũng có ví dụ cho truy vấn):
// 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
Với các nguyên tắc phân loại, điều này thậm chí sẽ có ý nghĩa hơn, bởi vì bạn chỉ có thể truy vấn các bài đăng được gắn thẻ với các thuật ngữ từ phân loại người dùng này, nhưng điều đó sẽ cần một hộp meta bài với các thuật ngữ phân loại người dùng. Điều kiện sẽ giống nhau: tên đăng nhập của người dùng và bạn chỉ cần thêm phân loại:
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' );
Vị trí kiểm tra khả năng (current_user_can) cũng có thể ở một nơi khác. Phụ thuộc tất cả vào nhu cầu cụ thể của bạn. Chỉ cần làm cho điều này chắc chắn: Đây là những ví dụ để hướng dẫn bạn trên con đường tìm kiếm sự giải quyết. Mong rằng sẽ giúp :)