Szervusztok!
(kezdő vagyok WP-ben és angolul olvastam, tehát nem vagyok jó a magyar WP terminológiában)
WP 4.4.2-t használok.
Szükségem van egy saját poszt típusra (mondjuk “podcast”), a későbbiekben várhatóan saját mezőkkel. Szeretnék egy olyan role-t konfigurálni, amely a felhasználónak lehetővé teszi, hogy ilyen típusú posztot közölhessen, a sajátjait módosíthassa és törölhesse, miközben bármilyen más objektumra csak olvasási joga van.
Először a CPT UI (v1.2.4) és a Members (v1.1.1) bővítményekkel próbáltam, de a Members nem látta a CPT UI-val létrehozott poszt típust.
Második próbálkozásra manuálisan próbáltam regisztrálni a típust, ami majdnem működött. A “read” capability nem jelenik meg a role definíciós panelen (post és page típusoknál igen). A felhasználólétre is tud hozni ilyen tartalmat, de azt nem lehet megjeleníteni. Az “Ooops! That page can’t be found.” üzenet jelenik meg.
Mint jeleztem, kezdő vagyok WP-ben, tehát számos hibát véthettem. Egy child sablont csináltam a twentysixteen-hez és a lehető legkevesebb módosítást hatom benne egyelőre végbe. A manuális regisztrációt a functions.php-ben így hajtottam végre (ezen információ alapján):
<br />
add_action( 'init', 'create_post_type' );<br />
function create_post_type() {<br />
// Labels<br />
$labels = array(<br />
'name' => __( 'Podcasts' ),<br />
'singular_name' => __( 'Podcast' )<br />
);<br />
// Capabilities<br />
$capabilities = array(<br />
// meta caps (don't assign these to roles)<br />
'edit_post' => 'edit_podcast',<br />
'read_post' => 'read_podcast',<br />
'delete_post' => 'delete_podcast',<br />
// primitive/meta caps<br />
// primitive caps used outside of map_meta_cap()<br />
'edit_posts' => 'edit_podcasts',<br />
'edit_others_posts' => 'edit_others_podcasts',<br />
'read_private_posts' => 'read_private_podcasts',<br />
// primitive caps used inside of map_meta_cap()<br />
'read' => 'read',<br />
'delete_posts' => 'delete_podcasts',<br />
'delete_private_posts' => 'delete_private_podcasts',<br />
'delete_published_posts'=> 'delete_published_podcasts',<br />
'delete_others_posts' => 'delete_others_podcasts',<br />
'publish_posts' => 'publish_podcasts',<br />
'edit_private_posts' => 'edit_private_podcasts',<br />
'edit_published_posts' => 'edit_published_podcasts'<br />
);<br />
// Other parameters<br />
$args = array(<br />
'labels' => $labels,<br />
'public' => true,<br />
'has_archive' => 'ecso_podcasts',<br />
'supports' => array( 'title', 'editor' ),<br />
'map_meta_cap' => true,<br />
'capability_type' => 'podcast',<br />
'capabilities' => $capabilities<br />
);<br />
register_post_type( 'ecso_podcast', $args );<br />
}
```<br />
A role admin ablak így néz ki: <a href="http://gabor.hrasko.com/capabilities.png">screenshot</a>. Mielőtt ráleltem erre a fórumra, itt tettem fel ugyanezt a kérdést angolul: <a href="https://wordpress.org/support/topic/access-control-for-custom-post-types-no-read-access">wordpress.org</a>.<br />
<br />
A legfelül vázolt igény kialakítására mit javasoltok?<br />
<br />
Gábor