@BradDalton +1. Особенно, когда нам не разрешено устанавливать плагин или писать функцию для достижения цели.
Субрата Саркар
Ответы:
34
Прицепите template_include, установите глобальный, чтобы отметить шаблон, установленный темой, затем прочитайте это значение обратно в нижний колонтитул или заголовок, чтобы увидеть, какой шаблон вызывается для данного представления.
Если вы хотите использовать это на рабочем сайте и держать эту информацию подальше от пользователей, не являющихся администраторами, добавьте немного условной логики.
<?php // If the current user can manage options(ie. an admin)if( current_user_can('manage_options'))// Print the saved global
printf('<div><strong>Current template:</strong> %s</div>', get_current_template());?>
Теперь вы можете отслеживать, какие представления используют какой шаблон, при этом скрывая эту информацию от ваших посетителей.
Если с этим ответом что-то не так, или если кто-то может предоставить комментарии о том, что можно сделать, чтобы улучшить этот ответ, добавьте его сюда и поделитесь своими мыслями и идеями о том, как его улучшить.
t31os
1
Это не сработало, братан, он говорит «Неопределенная функция»
Лукас Бустаманте
1
@LucasB то же самое, вот ошибка, которую я получил
Что ж, если все, что вам нужно, это проверить, какой файл шаблона использовался для создания текущей страницы, тогда вам не нужно запачкать руки кодом;)
Этот удобный плагин называется Debug Bar . Это отличный помощник во многих ситуациях, включая вашу. Вы должны обязательно это проверить - для меня и многих других это обязательный компаньон для любой разработки WP.
Я приложил скриншот, который может заставить тебя влюбиться ...
Чтобы панель отладки работала , вам нужно включить wp_debugи wp_savequeriesопции. Эти параметры по умолчанию отключены.
Прежде чем вносить какие-либо изменения, необходимо помнить следующее:
Не делайте этого в производственной среде, если сайт не обслуживает много трафика.
После завершения отладки обязательно отключите параметры (особенно параметр wp_savequeries, поскольку он влияет на производительность) веб-сайта.
Чтобы внести изменения:
Откройте wp_config.phpфайл через FTP-клиент.
Ищите wp_debugвариант. Изменить это define( 'WP_DEBUG', true );. Если строка отсутствует, добавьте ее в файл.
Аналогичным образом отредактируйте или добавьте строку define( 'SAVEQUERIES', true );в файл.
@justCallMeBiru - плагин панели отладки не требуетWP_DEBUG и SAVEQUERIES, хотя он улучшен ими.
Пэт Дж
3
Запуск такого плагина только для небольшого количества информации создает много накладных расходов imho, и поэтому я не предложил его в своем собственном ответе. Тем не менее, очевидно, что люди предпочитают этот ответ, мне интересно знать, почему, хотя.
t31os
23
Я использую эту удобную функцию, которая отображает текущий шаблон только для супер-администраторов:
function show_template(){if( is_super_admin()){global $template;
print_r($template);}}
add_action('wp_footer','show_template');
Самый простой способ, который я нашел, это включить функцию WordPress в тег body. Он добавит несколько классов в зависимости от того, какую страницу вы просматриваете (главная страница, страница за страницей и т. Д.).
Для этой цели есть еще один дополнительный плагин. Я склоняюсь к установке панели отладки, потому что эти другие функции выглядят полезными, но эта является более простой и специально для этой цели:
http://wordpress.org/extend/plugins/what-the-file/
Одна очень простая вещь, которую я делаю, это вставка комментария HTML, идентифицирующего файл шаблона, в каждый соответствующий файл темы, например, в верхней части index.php
<!-- index -->
и в верхней части front-page.php
<!-- front -->
Но очевидно, что это требует изменения темы. Я подозреваю, что вы можете добавить пользовательскую функцию в файл footer.php или header.php, которая сообщит вам, какой файл используется. Приведенный выше метод и справочная таблица http://codex.wordpress.org/Template_Hierarchy - это то, что я склонен использовать.
Существует плагин под названием Theme Check, который делает именно это. Он отображает имя текущего файла шаблона, используемого в качестве комментария HTML.
HTML-список со всеми файлами шаблонов, используемыми для текущей целевой страницы, включая все части шаблона из плагинов, комбинации дочерней темы и / или родительской темы , все в одной строке кода:
Вы МОЖЕТЕ проверить, что ваш сервер не возвращает дублирующие слэши на любом пути . Не забудьте поместить это после того, как все файлы шаблона фактически использовались, как в footer.php, но перед рендерингом админ-панели .
если admin-bar stuffпуть отображается вверху, или любой другой файл, измените имя файла template-loader.phpв этой строке кода на: любое имя файла, из которого вам нужно отказаться. Часто:class-wp-admin-bar.php
если вам это нужно в админ-панели, используйте правильную привилегию (как можно раньше), чтобы убедиться, что в конце списка нет файлов . Например:
приоритет -5сделать так, чтобы он загружался первым. Ключ заключается в том, чтобы позвонить get_included_files()в нужный момент, в противном случае потребуется некоторое выталкивание массива!
Чтобы разбить это:
Вы не можете собрать все включенные файлы шаблонов без PHP backtrace. Суперглобалы внутри не template_includeсоберут их всех . Другой способ - «поместить маркер» в каждом файле шаблона, но если вам нужно сначала взаимодействовать с файлами, вы тратите время и всю идею.
1) Нам нужно проверить все файлы, которые были использованы текущим запросом Wordpress. И их много! Не удивляйтесь, если вы используете 300 файлов до того, как ваш файл functions.php будет зарегистрирован.
Мы используем PHP get_included_files () для преобразования обратной косой черты в прямую, чтобы соответствовать большинству возвращаемых путей Wordpress.
2) Мы вырезаем этот массив, из которого зарегистрирован шаблон-loader.php. После этого заполненный get_included_files () должен содержать только файлы шаблонов.
/* The magic point, we need to find its position in the array */
$path = str_replace('\\','/', ABSPATH);
$key = $path.'wp-includes/template-loader.php';
$offset = array_search($key, $included_files);/* Get rid of the magic point itself in the new created array */
$offset =($offset +1);
$output = array_slice($included_files, $offset);
3) Сократите результаты, нам не нужен путь, пока папка темы или папка плагина, как используемые шаблоны , не могут быть смешаны из плагинов, папок тем или дочерних тем.
Последняя модификация может потребоваться в part3) -replacement , если вы не хотите, чтобы в нее входили подключаемые модули. Они могут вызывать class-filesпоздно и «перехватывать» во время обработки вывода шаблона.
Однако я счел разумным оставить их видимыми, поскольку идея состоит в том, чтобы отслеживать загруженное , даже если это не «шаблон», отображающий вывод на этом этапе.
Ответы:
Прицепите
template_include
, установите глобальный, чтобы отметить шаблон, установленный темой, затем прочитайте это значение обратно в нижний колонтитул или заголовок, чтобы увидеть, какой шаблон вызывается для данного представления.Я говорил об этом фильтрующем хуке раньше в разделе «Получить имя текущего файла шаблона» , но собери копию этого кода и добавь в него
functions.php
файл своей темы .Затем откройте тему
header.php
илиfooter.php
(или там, где вам нравится) и используйте что-то вроде следующего, чтобы распечатать текущий шаблон.Если вы хотите использовать это на рабочем сайте и держать эту информацию подальше от пользователей, не являющихся администраторами, добавьте немного условной логики.
Теперь вы можете отслеживать, какие представления используют какой шаблон, при этом скрывая эту информацию от ваших посетителей.
источник
get_page_template
Что ж, если все, что вам нужно, это проверить, какой файл шаблона использовался для создания текущей страницы, тогда вам не нужно запачкать руки кодом;)
Этот удобный плагин называется Debug Bar . Это отличный помощник во многих ситуациях, включая вашу. Вы должны обязательно это проверить - для меня и многих других это обязательный компаньон для любой разработки WP.
Я приложил скриншот, который может заставить тебя влюбиться ...
Чтобы панель отладки работала , вам нужно включить
wp_debug
иwp_savequeries
опции. Эти параметры по умолчанию отключены.Прежде чем вносить какие-либо изменения, необходимо помнить следующее:
Чтобы внести изменения:
wp_config.php
файл через FTP-клиент.wp_debug
вариант. Изменить этоdefine( 'WP_DEBUG', true );
. Если строка отсутствует, добавьте ее в файл.define( 'SAVEQUERIES', true );
в файл.Больше информации: Кодекс
источник
WP_DEBUG
иSAVEQUERIES
, хотя он улучшен ими.Я использую эту удобную функцию, которая отображает текущий шаблон только для супер-администраторов:
Надеюсь, это поможет. :)
источник
Добавьте следующий код сразу после строки get_header в каждом соответствующем файле шаблона:
В вашем браузере> просмотреть исходный текст, и имя шаблона будет отображаться в виде комментария в вашем HTML-коде, например
источник
Самый простой способ, который я нашел, это включить функцию WordPress в тег body. Он добавит несколько классов в зависимости от того, какую страницу вы просматриваете (главная страница, страница за страницей и т. Д.).
Проверьте это здесь: http://codex.wordpress.org/Function_Reference/body_class
Кроме того, это полезно для ориентации элементов с помощью CSS на этих страницах.
Знакомство с иерархией шаблонов (http://codex.wordpress.org/Template_Hierarchy), как упоминал Дэвид Р., также является хорошей идеей.
источник
Для этой цели есть еще один дополнительный плагин. Я склоняюсь к установке панели отладки, потому что эти другие функции выглядят полезными, но эта является более простой и специально для этой цели: http://wordpress.org/extend/plugins/what-the-file/
источник
Одна очень простая вещь, которую я делаю, это вставка комментария HTML, идентифицирующего файл шаблона, в каждый соответствующий файл темы, например, в верхней части index.php
и в верхней части front-page.php
Но очевидно, что это требует изменения темы. Я подозреваю, что вы можете добавить пользовательскую функцию в файл footer.php или header.php, которая сообщит вам, какой файл используется. Приведенный выше метод и справочная таблица http://codex.wordpress.org/Template_Hierarchy - это то, что я склонен использовать.
источник
Существует плагин под названием Theme Check, который делает именно это. Он отображает имя текущего файла шаблона, используемого в качестве комментария HTML.
источник
Ну вот:
HTML-список со всеми файлами шаблонов, используемыми для текущей целевой страницы, включая все части шаблона из плагинов, комбинации дочерней темы и / или родительской темы , все в одной строке кода:
Вы МОЖЕТЕ проверить, что ваш сервер не возвращает дублирующие слэши на любом пути . Не забудьте поместить это после того, как все файлы шаблона фактически использовались, как в footer.php, но перед рендерингом админ-панели .
если
admin-bar stuff
путь отображается вверху, или любой другой файл, измените имя файлаtemplate-loader.php
в этой строке кода на: любое имя файла, из которого вам нужно отказаться. Часто:class-wp-admin-bar.php
если вам это нужно в админ-панели, используйте правильную привилегию (как можно раньше), чтобы убедиться, что в конце списка нет файлов . Например:
приоритет
-5
сделать так, чтобы он загружался первым. Ключ заключается в том, чтобы позвонитьget_included_files()
в нужный момент, в противном случае потребуется некоторое выталкивание массива!Чтобы разбить это:
Вы не можете собрать все включенные файлы шаблонов без PHP backtrace. Суперглобалы внутри не
template_include
соберут их всех . Другой способ - «поместить маркер» в каждом файле шаблона, но если вам нужно сначала взаимодействовать с файлами, вы тратите время и всю идею.1) Нам нужно проверить все файлы, которые были использованы текущим запросом Wordpress. И их много! Не удивляйтесь, если вы используете 300 файлов до того, как ваш файл functions.php будет зарегистрирован.
Мы используем PHP get_included_files () для преобразования обратной косой черты в прямую, чтобы соответствовать большинству возвращаемых путей Wordpress.
2) Мы вырезаем этот массив, из которого зарегистрирован шаблон-loader.php. После этого заполненный get_included_files () должен содержать только файлы шаблонов.
3) Сократите результаты, нам не нужен путь, пока папка темы или папка плагина, как используемые шаблоны , не могут быть смешаны из плагинов, папок тем или дочерних тем.
4) Наконец, конвертировать из массива в красивый список HTML
Последняя модификация может потребоваться в part3) -replacement , если вы не хотите, чтобы в нее входили подключаемые модули. Они могут вызывать
class-files
поздно и «перехватывать» во время обработки вывода шаблона.Однако я счел разумным оставить их видимыми, поскольку идея состоит в том, чтобы отслеживать загруженное , даже если это не «шаблон», отображающий вывод на этом этапе.
источник