Intereting Posts
Включение кэша на сайтах членства WP. Хорошо или плохо? Штрих-код списка воспроизведения, предотвратить повтор Боковые записи блога, которые связаны друг с другом Страницы становятся «архивами» вместо использования шаблона страницы Глубокая настройка формы комментария? Получение дочерних категорий продуктов, связанных с продуктами WooCommerce Относительное время на сообщениях Почему get_posts показывает только пять сообщений (извлекаемых путем присвоения им категории? Как я могу найти единый шаблон сообщения форума buddypress? Создание первой публикации более широкой, чем другие сообщения на домашней странице (по умолчанию) новая страница перенаправляется на старую страницу, у которой была такая же постоянная ссылка Как перенаправить 301 в подкаталог, но сохранить доступ к wp-admin основного домена Как получить доступ к объекту $ wp_query из массива сообщений, заданных get_posts? Как получить текущий URL веб-сайта в моей теме? Настройки отображения вложений позволяют только "полноразмерные"

Просмотр использования шаблона страницы WordPress (или неиспользуемого)

Когда я создаю новую страницу в WordPress, у меня есть возможность указать, какой шаблон использовать из моей темы (из выпадающего списка в правой части интерфейса).

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

Как это делается, пожалуйста?

Версия WP 4.2.2

Вам нужно сравнить значения мета-поля _wp_page_template , который содержит шаблон страницы, выбранный для одной страницы с доступными шаблонами страниц.

Для этого вам нужно построить массив используемых шаблонов, потому что вам нужны шаблоны, используемые всеми страницами, как показано здесь:

  • Возврат всех настраиваемых метаданных для одного настраиваемого типа сообщений

Используйте array_unique для получения уникальных значений.

Затем вам нужно получить доступные шаблоны страниц, как показано здесь:

  • получить шаблоны страниц

И последнее, но не менее важное: вы можете использовать array_diff для сравнения массивов используемых и доступных шаблонов, которые впоследствии дают неиспользованные шаблоны.

Обновить:

Информация об использовании шаблона страницы в WordPress 4.4+

В WordPress 4.4 array_intersect_assoc() был удален из WP_Theme::get_page_templates() .

См. Билет № 13265 и набор изменений № 34995 .

Поэтому мы можем добавить информацию об использовании шаблонов страниц непосредственно в раскрывающийся список шаблонов , с фильтром theme_page_templates , без использования javascript или каких-то умных трюков в кэше объектов, описанных здесь @MikeSchinkel или здесь @gmazzap .

Вот демо ( PHP 5.4+ ):

 add_filter( 'theme_page_templates', function( $page_templates, $obj, $post ) { // Restrict to the post.php loading if( ! did_action( 'load-post.php' ) ) return $page_templates; foreach( (array) $page_templates as $key => $template ) { $posts = get_posts( [ 'post_type' => 'any', 'post_status' => 'any', 'posts_per_page' => 10, 'fields' => 'ids', 'meta_query' => [ [ 'key' => '_wp_page_template', 'value' => $key, 'compare' => '=', ] ] ] ); $count = count( $posts ); // Add the count to the template name in the dropdown. Use 10+ for >= 10 $page_templates[$key] = sprintf( '%s (%s)', $template, $count >= 10 ? '10+' : $count ); } return $page_templates; }, 10, 3 ); 

Пример:

Здесь мы можем видеть, как это могло бы выглядеть, с информацией об использовании использования, добавленной к именам шаблонов:

информация об использовании шаблона

Надеюсь, вы сможете приспособить это к вашим потребностям!