Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Private posts pro všechny přihlášené
Štítky: Oprávnění, read_private_posts, register_post_type()
Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (3 účastníci) se naposledy zapojil uživatel admin a poslední změna je stará 12 let, 6 měsíců.
-
AutorPříspěvky
-
23. prosince 2013 (9:47) #5824
Ahoj. Řeším vkládání soukromých stránek, které by se zobrazily všem přihlášeným uživatelům. Příliš se mi nechce do pluginů, protože na to má WP vestavěné “okno” :D, ale mám takový problém: potřebuji, aby si soukromé příspěvky mohli přečíst všichni registrovaní uživatelé. Zkoušel jsem přidat práva přes add_cap, moc to však nepracuje (aspoň co jsem postřehl)
function add_role_cap($cap,$role){
if(!is_numeric($role)){
$toadd_get=get_role($role);
}else{
$toadd_get=new WP_User($role);
}
if(is_array($cap)){
foreach($cap as $add_cap){
$toadd_get->add_cap($add_cap);
}
}else{
$toadd_get->add_cap($cap);
}
}
function add_usr_caps(){
add_role_cap('read_private_posts','contributor');
add_role_cap(array('read_private_pages','read_private_posts'),'editor');
add_role_cap('read_private_posts','author');
add_role_cap('read_private_posts','subscriber');
}
add_action('after_setup_theme','add_usr_caps');Všechno funguje, ale soukromé příspěvky z CPT calpress_events se nezobrazí.
Využívám plugin CalPress Calendar, a dávám tam soukromé akce ale nevím, jaká práva a kde má ten plugin předělány, či pokažený skript…
28. prosince 2013 (10:01) #17022používám plugin http://wordpress.org/plugins/pagerestrict/
3. ledna 2014 (16:20) #17023Šéfredaktor (aneb editor) by měl mít oprávnění
read_private_posts, takže ho není potřeba dále definovat.U vlastních typů obsahu (CPT) je to občas složitější, protože mohou být používány speciální oprávnění, jako v případě pluginu CalPress Calendar. Funkce register_post_type() má totiž parametry
capability_typeacapabilitiesa autoři pluginů se je nebojí použít :-)Takže pro oprávnění
read_private_postsmusíte v případě CPT calp_event používatread_private_calp_events(viz zdrojový kód).Příliš se mi nechce do pluginů, protože na to má WP vestavěné “okno”
Tomu moc nerozumím, naopak např. plugin Members by pomohl tento problém snadno identifikovat.
3. ledna 2014 (18:55) #17024Příliš se mi nechce do pluginů, protože na to má WP vestavěné “okno”
To bylo myšleno tak, že nechcu pro zatajování příspěvků používat extra plugin. To, že bych mohl zjistit problém přes Members, mě opravdu nenapadlo.
Takže pro oprávnění read_private_posts musíte v případě CPT calp_event používat read_private_calp_events (viz zdrojový kód)
Nad extra oprávněním jsem přemýšlel, ale nebyl jsem schopen žádné takové najít (asi jsem přesně nevěděl, co hledám :) )
Za postřehy děkuji. Zkusím nějak přidat práva na toto zobrazení.
6. ledna 2014 (10:11) #17025Také nemám rád zbytečné pluginy, které místo vlastní funkce o dvou řádcích načítají několik souborů, ale někdy je plugin prostě vhodnější řešení… Těžko se to ale předem posuzuje :-)
Přidat práva už snad nebude problém, stačí v uvedené funkci (v prvním příspěvku) pouze použít nové oprávnění…
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.