Пользовательские шаблоны галереи NextGEN

Прежде всего, стоит обратить внимания на стандартные шаблоны, имеющиеся у NextGEN. Они расположены в директории view плагина и зачастую могут выступать основой для кастомизации. Такой подход избавит вас от необходимости читать документацию по API NextGEN.

Определение шаблона через shortcode

Для начала, необходимо в директории с активной темой WordPress создать поддиректорию nggallery. Здесь должны храниться все кастомные шаблоны, которые вы планируете задействовать.




Далее используем стандартный шорткод с дополнительным параметром template, которым передаем имя необходимого шаблона:

[nggallery id="1" template="customtpl"]

При таком значение параметра template, файл шаблона должен иметь имя gallery-customtpl.php. Если файл не будет найден в пользовательской директории nggallery, плагин попробует обнаружить в этой же директории файл с именем gallery.php, который является шаблоном «по умолчанию». Если и этот файл не будет найден, плагин задействует стандартный шаблон из своей директории view.

В большинстве случаев, этих возможностей должно быть достаточно.

Использование фильтров

NextGEN реализует кастомные фильтры на которые можно повесить пользовательские функции. Одним из таких фильтров является ngg_render_template, отвечающий за выбор шаблона для последующей его обработки.

Функция принимает два параметра: первый – путь к файлам шаблона, второй – имя запрошенного шаблона, например, через параметр шорткода. Если со вторым параметром все понятно. То какую роль играет первый, я так и не смог понять. Если вы посмотрите код метода nggGallery:: render(), то увидите там следующую строку, отвечающую за применение фильтра ngg_render_template:

$custom_template = apply_filters( 'ngg_render_template', false, $template_name );

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

Пользовательская функция может иметь вид:

/**
* @param string $template_name name of required custom template
* @return string the template path
*/
function nggCustomTemplate($path, $template_name) {
    if ($template_name === 'gallery') $template_name = 'default';

    $path = dirname(__FILE__) . '/dir/' . $template_name . '.php';

    return $path;
}

Функция должна вернуть путь к файлу шаблона.

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

Если путь, который вернет функция, не содержит файл шаблона, функция будет вызвана еще раз со значением второго параметра, равным «gallery». Если и в этом случае файл шаблона не будет найден, NextGEN попытается найти шаблон gallery.php в директории nggallery и в случае очередной неудачи задействует необходимый шаблон из базового набора директории view.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *