Consenti al membro di avere accesso solo al tipo di post personalizzato. Permesso di modificare solo i propri messaggi
4 risposta
- voti
-
- 2011-04-12
Utilizzailplugin di Justin Tadlock " Members ". Ti dà lapossibilità di crearenuovi ruolie modificarei ruoliesistenti,oltre ad aggiungerefunzionalitàpersonalizzate. Tuttoil lavoro che dovrestifarepuòessere ridotto apochi clic.
So che hai dettoneltuo commento alla risposta di ZaMoose che stai "cercando di scrivere lafunzionalità da soloin modo da avereilpieno controllo sututto". Questomanca l'interopunto del software open source. Justin Tadlock ha rilasciatoil suopluginin modo chetupossa usarloprecisamentein modo da AVEREil controllo completo sututto.
Se davvero davvero vuoi reinventare la ruota,potenzialmente sprecando centinaia di ore deltuotempo,nonpossofermarti,mapotresti almeno risparmiarti lafaticae usareilplugin di Tadlockperimpara afare quello che vuoi.
Una volta che hai unplug-in chefa ciò che desideri,dovrai cambiareilflag
'map_meta_cap'
intrue
e il'cap_type'
flagnellafunzione di registrazione deltipo dipostin modo che dica qualcosa di diverso da "post","page" o qualsiasi altrotipo "riservato". Quindi,duplicatutte lefunzionalità relative aipost (ades.edit_posts
,edit_others_posts
,publish_posts
,ecc.),Utilizzandoiltuotipo di capacitàinvece deipost. Assicurati di assegnaretutte queste autorizzazioni agli amministratori (non saraiin grado di vedereiltipo dipostfino a quandonon lofai),quindi creailtuo ruolo,imitando le capacità del ruolo di "collaboratore"periltuotipo dipost.Adesempio,supponiamo cheiltuotipo di capacitàfosse
foobars
,vorresti dare ai "proprietari dinegozi"edit_foobars
,delete_foobars
e < capacità di codice> lettura . In questomodopossono creare lepropriebozze difoobaredeliminaretalibozze,mapoichénon dispongono dellefunzionalitàpublish_foobars
,devono sottoporleper l'approvazione. Poichénon hannoedit_published_foobars
,tutte lemodifiche a unfoobar approvato devonoessere approvate.Use Justin Tadlock's plugin "Members". It gives you the ability to create new roles and edit existing roles, as well as add custom capabilities. All that work that you'd have to do can be taken down to a few clicks.
I know you said in your comment on ZaMoose's answer that you are 'looking to write the functionality myself so I have full control over everything.' That's missing the whole point of open source software. Justin Tadlock released his plugin so you could use it precisely so you WOULD have complete control over everything.
If you really really want to reinvent the wheel, potentially wasting hundreds of hours of your own time I can't stop you, but you could at least save yourself the trouble and use Tadlock's plugin to learn how to do what you want.
Once you have a plugin that does what you want, you'll need to change the
'map_meta_cap'
flag totrue
and the'capability_type'
flag in your post type registration function so that it says something other than 'post', 'page', or any other 'reserved' type. Then, duplicate all the capabilities related to posts (e.g.edit_posts
,edit_others_posts
,publish_posts
, etc.), using your capability type instead of posts. Make sure to assign all these permissions to administrators (you won't be able to see the post type until you do this), then create your role, mimicking the 'contributor' role's abilities for your post type.For example, say your capability type was
foobars
, you would want to give 'shop owners' theedit_foobars
,delete_foobars
, andread
capabilities. That way they can create their own draft foobars, and delete those drafts, but because they don't havepublish_foobars
capabilities, they have to submit them for approval. Because they don't haveedit_published_foobars
, all modifications to an approved foobar have to be approved.-
OK,sto usandoilplugin Membri oraper avere un'idea di comefunzionano le autorizzazioni deimembri.Hoimpostato ""map_meta_cap "=>true"e "" capacità_type "=>"proprietario di unnegozio "sulmiotipo di articolopersonalizzato.Ho creato unnuovo ruolo chiamato `ShopOwner`e gli ho dato le capacità di read,edit_shopowner,delete_shopowner.Imposta un utente conil ruolo di Proprietario delnegozioe accedi con quell'utente.Quell'utentenonpuò vedereiltipo dipostpersonalizzato.Mi sonoperso qualcosa?OK im using Members plugin now to get a jist of how member permissions work. I have set `'map_meta_cap' => true` and `'capability_type' => 'shopowner'` on my custom post type. I have created a new role called `ShopOwner` and given it the capabilities of read, edit_shopowner, delete_shopowner. Set a user to the role of ShopOwner and logged in with that user. That user cannot see the custom post type. Have I missed something?
- 0
- 2011-04-12
- Scott
-
cambialiin `edit_shopowners`e` delete_shopowners`.`edit_shopowner`e` delete_shopowner` sonometa capacità chenon vengonomaieffettivamente verificate.Vengono controllati quando qualcunotenta dimodificare oeliminare unelemento specificoe finisconoper controllare cose come "Questo utentepuòeliminare questitipi dielementi? Puòeliminare soloilproprio o anche altri? Puòeliminareglielementipubblicati?"eccetera.change those to `edit_shopowners` and `delete_shopowners`. `edit_shopowner` and `delete_shopowner` are meta capabilities that are never actually checked against. They're checked when somebody tries to edit or delete a specific item, and end up checking things like "Can this user delete these types of items? Can they only delete their own or others too? can they delete published items?" etc.
- 2
- 2011-04-12
- John P Bloch
-
Non riuscivo a capirlo ...ma ho ottenuto lafunzionalità che cercoimpostando lefunzionalitànelmiotipo dipostpersonalizzatoe creando quellefunzionalitànelplug-in deimembri.Ti ho assegnato le risposteperchéiltuopost è statoilpiù utileperme permettereinsieme una soluzione.GrazieI couldnt make any sense of that... but I got the functionality I'm after by setting capabilities in my custom post type and creating those capabilities in members plugin. I've awarded you the answers as your post was the most useful for me to piece a solution together. Thanks
- 0
- 2011-04-12
- Scott
-
- 2011-04-12
Iltipo dipost del registro ha unparametro chiamato "capacità" cosìpuoi avereperesempio
'capability' => 'organize_shop',
http://codex.wordpress.org/Function_Reference/register_post_type
Per creare unnuovo utente/ruolo/capacitàpuoi usare add_role,add_cap,per un sempliceesempioperiniziare:
// Add the role to WordPress list of roles // Then add the capability 'organize_shop' to the 'shop_owner' role $role = add_role( 'shop_owner', 'Shop Owner', ['edit_posts' => true])); $role->add_cap( 'organize_shop' ); // If 'shop_owner' already exists make `$wp_roles` visible then // add the capability 'organize_shop' to the 'Show Owner' role public $wp_roles; $wp_roles->add_cap( 'shop_owner', 'organize_shop' );
The register post type has a parameter called "capabilities" so you can have for instance
'capability' => 'organize_shop',
http://codex.wordpress.org/Function_Reference/register_post_type
To create a new user/role/capability you can use add_role, add_cap, for a simple example to get you started:
// Add the role to WordPress list of roles // Then add the capability 'organize_shop' to the 'shop_owner' role $role = add_role( 'shop_owner', 'Shop Owner', ['edit_posts' => true])); $role->add_cap( 'organize_shop' ); // If 'shop_owner' already exists make `$wp_roles` visible then // add the capability 'organize_shop' to the 'Show Owner' role public $wp_roles; $wp_roles->add_cap( 'shop_owner', 'organize_shop' );
-
hmm ... sono unpo 'confuso qual è la differenzatra 2e 3 righe?: S Non aggiunge la stessa capacità al ruolo di "Proprietario delnegozio"?hmm... I'm a bit confused what's the difference between 2 and 3 lines? :S Doesn't it add the same capability to the 'Shop Owner'role?
- 0
- 2011-09-13
- dashaluna
-
Sì,sono ugualimamostranomodi diversiperfarlo,ilprimoincludeil ruolo comeprimoparametro (Proprietario delnegozio),il secondo soloil limitepoiché utilizza $ role.Yes they are the the same but they show diff ways to do it, first one includes the role as first parameter ( Shop Owner), second one just the cap since it is using $role.
- 0
- 2011-09-13
- Wyck
-
Dovrestitradurre una capacità/autorizzazione?quello è __('');Are you supposed to translate a capability/permission? that's __('');
- 3
- 2015-11-04
- Svetoslav Marinov
-
@SvetoslavMarinov Homodificato la rispostaper rimuovere latraduzione.@SvetoslavMarinov I edited the answer to remove the translation.
- 0
- 2019-02-24
- MikeSchinkel
-
@dashaluna homodificato la rispostaper chiarirla.@dashaluna I edited the answer to clarify it.
- 0
- 2019-02-24
- MikeSchinkel
-
@MikeSchinkel cool@MikeSchinkel cool
- 0
- 2019-02-24
- Svetoslav Marinov
-
- 2011-04-12
Hai considerato diguardare Gravity Forms o TDO Mini Forms pergestire l'effettivoinvio di contenuti?Ognuno diessi hafunzionalità cheti aiuterebbero agestire correttamentei contenutiinviati dagli utenti.
Have you considered looking at Gravity Forms or TDO Mini Forms to handle the actual content submission? They each have functionality that would get you well down the road towards sanely handling user-submitted content.
-
Grazieper la risposta,manon è quello che cerco.Principalmenteperché sitratta diplugin.Sto cercando di scrivere lafunzionalità da soloin modo da avereilpieno controllo sututto.Thanks for replying but these are not what I'm looking for. Mainly because these are plugins. I am looking to write the functionality myself so I have full control over everything.
- 0
- 2011-04-12
- Scott
-
- 2019-02-24
Unmodopiù sempliceedefficienteper ottenere questo risultatoinstallando unplugin chiamato "Advance Access Manager",non dovrai scrivere lafunzionalitàma avere comunque un discreto livello di controllo sugli utenti,i ruolie cosapossonofare.Lamaggiorparte delle cose che desideripossonoessere ottenute da questoplugin.
An easier and efficient way how this can be achieved by installing a plugin called "Advance Access Manager" , you will not have to write the functionality but still have decent level of control on the users , roles and what they can do . Most of the stuff you want can be achieved by this plugin .
OK,sto cercandoilmodomiglioreper attaccare questo.
Sonomolto amio agio con PHPe realizzotipi dipostpersonalizzati conmeta campipersonalizzatiin WordPress.
Ecco cosa sto cercando difare:
Hobisogno di aiuto su quanto segue:
Idealmentepreferirei chetuttofossefatto dal wp-admin,maimmagino chepotrei averbisogno di creare unfront-endper questoper ottenereil controllofinito che sto cercando.
Qualsiasi contributo èmolto apprezzato.
Cordiali saluti