Как скрыть шаблон в WordPress?

Есть ли способ скрыть файл шаблона в admin?

Например, у меня есть шаблон, который должен быть доступен только в том случае, если установлен определенный плагин, и я уже знаю, как проверить, активен ли плагин. Но как скрыть шаблон?

Например, я хочу скрыть «перенаправление Blogger» – ниже:

Изображение - всего лишь пример ...

Я нашел несколько ссылок, но все решения кажутся устаревшими.

EDIT: Если кто-то заинтересован в том, как я проверяю, активен ли pluin, я делаю это со следующей функцией:

function isPluginActive($plugin){ if ( in_array( $plugin, apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { return true; } return false; } 

Обновление – предостережение, как указано в комментариях к андре:

Используйте этот код с осторожностью. Если у вас есть какие-либо страницы с использованием шаблона, который вы удалили из выбора, обновление страницы приведет к возврату к шаблону по умолчанию


Я не уверен, есть ли способ PHP для этого – вам придется искать в классе WP_Theme , но с первого взгляда это может быть невозможно, потому что для того, чтобы получить все шаблоны, класс использует внутреннюю функцию scandir() который сканирует текущий каталог темы и получает все .php файлы оттуда. Затем он ищет соответствующее Template Name: идентификатор, и если он присутствует, он добавляется в список шаблонов.

Поэтому вместо этого я предлагаю, чтобы вы добавили немного JS, который удалит эту опцию из выбора шаблона страницы. Вот фрагмент кода:

 function my_remove_page_template() { global $pagenow; if ( in_array( $pagenow, array( 'post-new.php', 'post.php') ) && get_post_type() == 'page' ) { ?> <script type="text/javascript"> (function($){ $(document).ready(function(){ $('#page_template option[value="sidebar-page.php"]').remove(); }) })(jQuery) </script> <?php } } add_action('admin_footer', 'my_remove_page_template', 10); 

Это приведет к удалению sidebar-page.php из раскрывающегося списка. Условные условия заключаются в том, что скрипт добавляется только при добавлении и редактировании экранов страниц.

Отрегулируйте свое дело и наслаждайтесь 🙂

WordPress не предоставляет никакого подключения, поэтому вы не можете удалить его из PHP.

Одна из альтернатив, о которых я мог подумать, заключается в том, что вы можете удалить ее динамически с помощью JavaScript. Включите фрагмент JavaScript на странице add post которая удалит параметр из элемента select .

Я знаю, что это не чистое решение, но я думаю, что это единственный возможный способ.

Изменить :

Другой вариант – скопировать файл шаблона в каталог тем, когда активирован плагин, и удалите файл шаблона, когда плагин отключен.

Это предполагает, что шаблон используется только этим плагином.