Private posts pro všechny přihlášené

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Private posts pro všechny přihlášené

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á 10 let, 3 měsíce.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)
  • Autor
    Příspěvky
  • #5824

    sjiamnocna
    Participant
    Web

    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…

    #17022

    Bigdrobek
    Participant
    Web
    #17023

    admin
    Keymaster
    Web

    Šé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_type a capabilities a autoři pluginů se je nebojí použít :-)

    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).

    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.

    #17024

    sjiamnocna
    Participant
    Web

    Pří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í.

    #17025

    admin
    Keymaster
    Web

    Také 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í…

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti