Ich habe also einige Probleme damit und kann nicht verstehen warum. Ich brauche nur eine benutzerdefinierte Rolle, die auf das Blog im Backend zugreifen kann.
Ich habe einen neuen Beitragstyp mit dem Funktionstyp blog
und einer neuen Benutzerrolle mit allen Obergrenzen hinzugefügt , die es Benutzern mit Administratorzugriff ermöglichen, den benutzerdefinierten Beitragstyp hinzuzufügen / zu bearbeiten. Dies funktioniert für Administratoren und sie können auf den Beitragstyp im Backend zugreifen. Benutzer meiner benutzerdefinierten Rolle können jedoch überhaupt nicht in das Back-End gelangen.
Post-Typ-Argumente
"capability_type" => 'blog',
"map_meta_cap" => true,
Rolle registrieren
function add_blog_manager_role(){
add_role(
'blog_manager',
'Blog Manager',
array(
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true
)
);
}
add_action( 'admin_init', 'add_blog_manager_role', 4 );
Caps hinzufügen
function add_blog_role_caps() {
$roles = array('blog_manager', 'editor','administrator');
foreach($roles as $the_role) {
$role = get_role($the_role);
$role->add_cap( 'read' );
$role->add_cap( 'read_blog');
$role->add_cap( 'read_private_blog' );
$role->add_cap( 'edit_blog' );
$role->add_cap( 'edit_others_blog' );
$role->add_cap( 'edit_published_blog' );
$role->add_cap( 'publish_blog' );
$role->add_cap( 'delete_others_blog' );
$role->add_cap( 'delete_private_blog' );
$role->add_cap( 'delete_published_blog' );
}
}
add_action('admin_init', 'add_blog_role_caps', 5 );
Ich habe verzweifelt gegoogelt und versucht, die Ursache dafür zu finden. Ich habe versucht, mit Plural, nicht Plural Caps, Funktionen in die Post-Typ-Argumente hinzuzufügen. Ich komme jedoch nie ins Backend. Ich habe keinen anderen Code im Thema, der Benutzer aus dem Administrator werfen könnte (ich habe meinen eigenen Code entfernt, der sie beim Testen rausgeschmissen hat).
Bearbeiten Hier sehen Sie einen Speicherauszug der blog_manager-Funktionen aus der Datenbank. Dort ist noch einiges an Test-BS übrig, aber das sollte nicht verhindern, dass sie sich von dem, was ich weiß, anmelden können.
'blog_manager' => array (
'name' => 'Blog Manager',
'capabilities' => array (
'read' => true,
'edit_posts' => false,
'delete_posts' => false,
'publish_posts' => false,
'upload_files' => true,
'read_blog' => true,
'read_private_blog' => true,
'edit_blog' => true,
'edit_others_blog' => true,
'edit_published_blog' => true,
'publish_blog' => true,
'delete_others_blog' => true,
'delete_private_blog' => true,
'delete_published_blog' => true,
'blog' => true,
'read_private_blogs' => true,
'edit_blogs' => true,
'edit_others_blogs' => true,
'edit_published_blogs' => true,
'publish_blogs' => true,
'delete_others_blogs' => true,
'delete_private_blogs' => true,
'delete_published_blogs' => true,
'delete_blogs' => true,
'delete_blog' => true,
),
)