Поддержка Проблемы и решения Как запретить удалять «Мои блоки»

  • В Гутенберге есть такая функция, что если добавить блок в «Мои блоки» и далее его использовать, то его можно изменять на всех страницах сразу, изменив лишь шаблон блока. Можно и удалить – тогда он удалится сразу на всех страницах, где был.

    Проблема в том, что я не хочу давать возможность удалять эти блоки авторам – если автор удаляет такой блок, он удаляется по всему сайту. Это можно как-то запретить?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тикет вроде с этой проблемой закрыт https://github.com/WordPress/gutenberg/issues/12338

    Можно попробовать по гиту поискать похожие вопросы по Reusable Blocks https://github.com/WordPress/gutenberg/issues?q=label%3A%22%5BFeature%5D+Reusable+Blocks%22

    Да вот искал вчера весь вечер, ничего не нашёл. Даже на WordPress Codex нет инфы о том, какой кусок кода за это право отвечает. Мне пока что пришлось отнять у пользователя редактора, дать ему автора и добавить право на редактирование чужих постов. Теперь он не может удалять блоки, но может редактить чужие посты, что мне и нужно было. Пока что другого решения не знаю.

    • Ответ изменён 2 года, 2 месяца назад пользователем arskrigitsioniets.

    Я нашел что он используется в этом классе: wordpress/wp-includes/rest-api/endpoints/class-wp-rest-blocks-controller.php

    может будет полезной информация и получится повлиять на привилегии и запретить смену или изменение типов записей wp_block

    Хотя как я понял — все же привилегии работают как надо — редактор может их изменять, а автор не может. Значит оно работает верно и тикет не просто так закрыт был.

    Путём колупания прав через плагин я обнаружил, что право на редактирование/удаление чужих постов одновременно влияет на «мои блоки». Если я запрещаю редактировать/удалять чужие посты, это же применяется к блокам, и наоборот. Я не знаю, в ядре вордпресса это также взаимосвязано или всё-таки нет. В английском сапорте мне там дали кусок кода https://wordpress.org/support/topic/to-prevent-deleting-reusable-blocks/#post-12606162, но так глубоко углубляться не хочу. Ну и ещё там написали, что блоки = кастомные типы записей.

    Я также отписал в поддержку известного плагина User Role Editor: https://wordpress.org/support/plugin/user-role-editor/ Возможно, у тамошнего разработчика получится выловить отдельное право на редактирование/удаление блоков.

    Ну и ещё там написали, что блоки = кастомные типы записей.

    ага прям комментарием выше я об этом и писал и назвал какое имя у него.

    Ну тогда все логично — права есть удалять сообщения, значит тот кто дал права этому пользователю — не будет их раздавать абы кому. Значит и удалять он имеет право и блоки и менять их. Доверенное лицо же как никак

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Как запретить удалять «Мои блоки»» закрыта для новых ответов.