W WPBeginner zazwyczaj dostosowujemy role użytkowników na naszych witrynach internetowych. Uważamy, że zezwalanie użytkownikom na wykonywanie tylko tych zadań, które są niezbędne dla ich roli, zmniejsza ryzyko wystąpienia błędów i poprawia zabezpieczenia witryny internetowej.
Niektórzy z naszych czytelników pytali, czy możliwe jest ograniczenie autorów do wyświetlania i edytowania tylko własnych wpisów na ich wieloautorskich blogach WordPress. Ze względu na prywatność wolą, aby ich autorzy nie widzieli wpisów innych autorów, dopóki nie zostaną opublikowane.
Cóż, jest to zdecydowanie możliwe, a w tym artykule pokażemy, jak łatwo ograniczyć autorów do zobaczenia i zarządzania tylko własnymi wpisami w kokpicie WordPress.
Dlaczego ograniczać autorów do ich własnych wpisów?
Domyślnie twoja witryna internetowa WordPress pokazuje wszystkie wpisy i strony wszystkim użytkownikom, niezależnie od ich roli użytkownika w obszarze administracyjnym. Niezależnie od tego, czy jesteś autorem, redaktorem, współtwórcą czy administratorem, możesz zobaczyć wszystkie artykuły.
Zazwyczaj nie stanowi to problemu, jeśli autorzy są częścią twojej firmy lub zespołu.
Jednak ograniczenie ludzi do zobaczenia własnych wpisów jest przydatne w niektórych sytuacjach. Na przykład, jeśli prowadzisz witrynę internetową z wieloma autorami, przydatne może być uniemożliwienie autorom przeglądania artykułów innych autorów.
W związku z tym przyjrzyjmy się, w jaki sposób można ograniczyć autorom możliwość zobaczenia własnych wpisów w panelu administracyjnym WordPress. Oto tematy, które omówimy w tym artykule:
Ograniczenie autorów do ich własnych wpisów za pomocą wtyczki
Za pomocą wtyczki WordPress można łatwo zezwolić autorom na wyświetlanie tylko ich własnych wpisów bez konieczności edytowania kodu.
W tym poradniku będziemy używać wtyczki PublishPress Permissions. Jest to darmowa wtyczka, która pozwala zarządzać uprawnieniami WordPress i działa od razu po wyjęciu z pudełka, aby ograniczyć autorów do ich własnych artykułów.
Dostępna jest również wersja premium w pakiecie PublishPress Pro, która oferuje więcej ustawień uprawnień, takich jak kto może uzyskać dostęp do biblioteki multimediów. Można jednak zacząć od wersji darmowej.
Najpierw musisz zainstalować i włączyć wtyczkę PublishPress Permissions. Aby uzyskać więcej informacji, możesz skorzystać z naszego przewodnika na temat instalacji wtyczki WordPress.
Gdy wtyczka jest włączona, automatycznie ograniczy autorów i redaktorów, aby widzieli tylko własne wpisy w obszarze administracyjnym WordPress.
Na przykład, jeśli logujesz się jako administrator i przechodzisz do sekcji Posty ” Wszystkie wpisy z twojego kokpitu, zobaczysz wszystkie wpisy.
Jeśli jednak zalogujesz się do obszaru administracyjnego WordPress z konta autora, powiadomienie będzie widoczne tylko dla wpisów utworzonych przez autora.
Nie będzie można zobaczyć wpisów napisanych przez innych użytkowników.
A co jeśli chcesz, aby twoi redaktorzy mieli dostęp do wszystkich wpisów, aby mogli je przeglądać? Zobaczmy, jak można to zrobić.
Umożliwienie redaktorom zobaczenia wszystkich wpisów
Problem z powyższą metodą polega na tym, że pozwala ona tylko administratorom zobaczyć wszystkie wpisy.
Wiele witryn WordPress ma redaktorów odpowiedzialnych za korektę artykułów przesłanych przez innych autorów i gości. Korzystanie z tej wtyczki ograniczy redaktorów tylko do ich własnych wpisów.
Możesz jednak zezwolić redaktorom na przeglądanie treści różnych autorów za pomocą wtyczki, takiej jak PublishPress Capabilities plugin lub dodając kod do plików motywu twojej witryny. Pokażemy ci obie metody.
Korzystanie z wtyczki PublishPress Capabilities
PublishPress Capabilities to kolejna wtyczka stworzona przez PublishPress. Na potrzeby tego poradnika będziemy korzystać z darmowej wersji. Istnieje również wersja pro, którą można uzyskać po zasubskrybowaniu konta PublishPress Pro.
Najpierw musisz zainstalować i włączyć wtyczkę PublishPress Capabilities na twojej witrynie internetowej WordPress. Możesz postępować zgodnie z naszym przewodnikiem krok po kroku, jak zainstalować wtyczkę WordPress.
Po włączeniu wtyczki, kliknij na ” Możliwości ” w menu administratora WordPress. Spowoduje to otwarcie strony „Role Capabilities”, na której można zmienić uprawnienia dla różnych ról użytkowników.
Następnie wybierz rolę użytkownika, którą chcesz edytować, z menu rozwijanego w lewym górnym rogu.
Po wybraniu roli „Redaktora” należy upewnić się, że pole wyboru „Edytuj innych” jest włączone w ustawieniach możliwości edycji.
Pozwoli to redaktorom na edycję innych wpisów.
Następnie przewiń w dół do sekcji Dodatkowe możliwości i upewnij się, że pole wyboru „lista innych wpisów” jest włączone.
W ten sposób każdy z rolą redaktora będzie mógł zobaczyć wpisy innych autorów.
Teraz zapisz swoje ustawienia i zobacz sekcję Wpisy na twojej witrynie internetowej, logując się jako redaktor. Jeśli jesteś w stanie zobaczyć i edytować wpisy innych autorów, oznacza to, że poprawnie skonfigurowałeś ustawienia.
Dodawanie własnego kodu do twojego motywu
Innym sposobem na umożliwienie redaktorom zobaczenia wszystkich wpisów jest dodanie własnego kodu do plików twojego motywu. Nie zalecamy jednak tej metody dla początkujących, ponieważ bierze ona udział w edycji kodu i może zepsuć twoją witrynę internetową.
Aby rozpocząć, zaawansowani użytkownicy mogą ręcznie dodać ten kod do pliku functions. php swojego motywu, ale zalecamy użycie wtyczki fragmentu kodu, takiej jak WPCode.
Po zainstalowaniu i włączaniu wtyczki WPCode, musisz udać się na stronę Code Snippets ” + Add Snippet w twoim kokpicie WordPress.
Tam należy najechać kursorem myszy na „Add Your Custom Code (New Snippet)”, a następnie kliknąć przycisk „+ Add Custom Snippet”, który się pojawi.
Spowoduje to otwarcie strony, na której można dodać własny fragment kodu. Po pierwsze, powinieneś nadać fragmentowi kodu tytuł, który opisuje jego działanie, na przykład „Zezwalaj redaktorom na zobaczenie wszystkich wpisów”.
Następnie należy wkleić poniższy fragment kodu do panelu podglądu kodu:
function posts_for_current_author($query) {
global $pagenow;
if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;
if( !current_user_can( 'edit_others_posts' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');
Następnie upewnij się, że wybrałeś rodzaj kodu „Fragment kodu PHP” z rozwijanego menu.
Na koniec upewnij się, że włączyłeś ustawienie „Aktywny”, a następnie kliknij przycisk „Zapisz fragment kodu”, aby zapisać i włączyć kod.
Ten kod pozwala każdemu użytkownikowi z możliwością edycji wpisów innych osób zobaczyć wszystkie wpisy. Oznacza to, że redaktorzy i administratorzy będą mogli zobaczyć wszystkie wpisy. Użytkownicy z innymi rolami, takimi jak współtwórcy lub autorzy, zobaczą tylko własne wpisy.
Więcej szczegółów można znaleźć w naszym przewodniku na temat dodawania własnego kodu w WordPress bez naruszania czegokolwiek.
Jeśli korzystasz z własnych ról użytkowników w swojej witrynie, musisz pamiętać, że użytkownicy, którzy mogą edytować wpisy dodane przez innych użytkowników, będą mogli również zobaczyć je na liście w kokpicie.
Bonus: Ograniczenie autorów do zobaczenia konkretnych wpisów lub stron
Można również ograniczyć autorom, redaktorom, współpracownikom i innym rolom użytkowników możliwość zobaczenia, edycji i usunięcia określonych wpisów i stron bloga.
Korzystając z wtyczki PublishPress Permissions, możesz łatwo zdecydować, które konkretne wpisy i strony ludzie mogą zobaczyć na kokpicie twojej witryny internetowej.
Aby rozpocząć, zainstaluj i włącz wtyczkę PublishPress Permissions na twojej witrynie internetowej. Możesz zapoznać się z naszym poradnikiem na temat instalacji wtyczki WordPress.
Załóżmy, że chcesz, aby określony artykuł był edytowany tylko przez redaktora witryny internetowej i nikogo innego.
Aby to zrobić, możesz edytować ten wpis. Gdy jesteś w edytorze bloków WordPress, po prostu przewiń w dół do pola „Uprawnienia: Edytuj ten wpis”.
Następnie należy kliknąć menu rozwijane dla wszystkich innych ról użytkowników i wybrać opcję „Zablokowany”. Domyślnie uprawnienie zostanie ustawione na „Domyślnie: Tak”, gdzie każdy może edytować wpis.
Następnie upewnij się, że pozostawiłeś ustawienie dla edytora na opcję „Włączone” lub „domyślnie: Tak”. Po ustawieniu uprawnień upewnij się, że zaktualizowałeś swój wpis na blogu.
Przewodniki ekspertów na temat zmiany możliwości ról użytkowników w WordPressie
Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak ograniczyć autorów do ich własnych wpisów w obszarze administracyjnym WordPress. Być może spodoba ci się kilka innych artykułów związanych ze zmianą możliwości ról użytkowników WordPress:
- Jak dodawać lub usuwać uprawnienia do ról użytkowników w WordPress?
- Przewodnik dla początkujących po rolach i uprawnieniach użytkowników WordPressa
- Słowniczek: Uprawnienia użytkownika
- Jak umożliwić autorom edytowanie wpisów na WordPressie po ich zatwierdzeniu?
- Jak zezwolić redaktorom na edycję tylko niektórych stron w WordPressie?
- Jak uniemożliwić autorom usunięcie wpisów w WordPressie?
- Jak umożliwić autorom wprowadzanie zmian do opublikowanych wpisów w WordPressie?
- Jak ograniczyć dostęp do multimediów do własnych plików użytkownika w WordPress?
- Jak zezwolić użytkownikom bloga na moderację komentarzy w WordPressie?
- Jak zezwolić użytkownikom na edycję komentarzy w WordPress?
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Abu-Bakr Sediq
Hello there, I really enjoy this website! I have a question. How to rescrict (limit, Hide) specific options or feature while Author Post New Product or Add News post. To be more clear; How to limit user from some option in „Add New Post” while publishing post. Sorry for my very bad English
WPBeginner Support
If you want to limit the options for a post’s author based on their role, you would want to take a look at our guide below!
https://www.wpbeginner.com/beginners-guide/wordpress-user-roles-and-permissions/
Administrator
Lee
Hi there!
Thank you for this great article.
Can I use the Permissions plug in without the Capabilities plug in?
Or does the capabilities plug in work as a 'base’ for the Permissions one, and they must be used together?
WPBeginner Support
You can use one without the other, they modify different options available to the different user levels.
Administrator
lionel
what happens when I remove the plugin? will any changes be removed too and will all users go back to the defaults or will those users require special attention to have PublishPress roles removed? thanks!
WPBeginner Support
If you remove the plugin it would revert the settings from the plugin.
Administrator
Eslam Magdy
Thank u so much man!,,, thanks work for me
WPBeginner Support
Glad our article was able to help!
Administrator
Ignazio
You are really great and I congratulate you. If I may, I would like to ask you something. If I wanted to modify this code to make the posts limited in view and edit only to their author as far as drafts are concerned?
WPBeginner Support
For what you are wanting, you may want to modify the role permissions or give permissions, you would want to take a look at our article below on permissions:
https://www.wpbeginner.com/beginners-guide/wordpress-user-roles-and-permissions/
Administrator
Naomi Blindeman
Thank you! Lifesaver!
WPBeginner Support
You’re welcome
Administrator
Dan D
Exactly what I was looking for. No custom code was needed.
WPBeginner Support
Glad our guide was helpful
Administrator
Guto Rockwell
Works like a charm, many thanks
WPBeginner Support
Glad our guide could help
Administrator
Zakaria
Your code working perfectly. Thanks!!!
WPBeginner Support
You’re welcome
Administrator
Noriel
Your recommended plugin is already outdated, any other reliable plugin?
WPBeginner Support
This article was last updated in 2015, we will be sure to look for an alternative and update this article when we are able.
Administrator
Fernando Aureliano
It works for all post types?
WPBeginner Support
If you’re using the plugin you would need to reach out to the plugin’s support for that specific question.
Administrator
Davood Denavi
Does the code mentioned in this article work with all post types? I have some custom post types on a clients site and the plugin worked we do not have time to test the site right now after adding more code and we are trying to allow editors to view all posts.
Thank in advance for your help!
Gulshan Kumar
How to filter out comments according to currently logged in user?
I want to restrict listing of all comments for the contributor. I want to allow showing and moderation option only for those posts which belong to them.
Rohit Mewada
Same question, how hide comment also from other user.
Brandon Evans
Does this plugin include hiding of „pages” from non-authors? I see everything listed here says posts but would pages be included in that? Our site uses pages more than posts.
Ravijit
How to hide comments from contributers in wordpress dashboard ???
Tom
Hey there,
is there a way to exclude specific Post Types from that query ?
regards Tom
Sam
What if i have multiple admin and i want admin’s can see only their posts ??
barisla
very useful thanks
Charlie
Works great. The other problem I have is that it still displays the post count for other users. So for example there are 105 published posts even if the current user only has 2 published posts.
Any idea how to rectify this?
Sherwin Ramnarine
I realise this is months later so I guess the reply is really for others with the same problem. Try adding this to your functions.php. Think I got it on Wordpress.StackExchange.com >>
// Remove Post Counts
// Create a specific hook
add_filter(„views_edit-post”, 'custom_editor_counts’, 10, 1);
function custom_editor_counts($views) {
// var_dump($views) to check other array elements that you can hide.
unset($views[’all’]);
unset($views[’publish’]);
unset($views[’pending’]);
unset($views[’trash’]);
return $views;
}