Проблема вот в чем:
хочу в sidebar.php при просмотре поста/страницы выводить галерею nextgen Gallery (т.е. ВНЕ лупа) так:
<?php echo nggShowGallery(‘1’); ?>
где соответственно 1 — id галереи
Если вставлять <?php echo nggShowGallery(‘1’); ?> в поле custom fields, то php «не работает», на страницу ничего не выводится 🙁
Тогда можно в custom field (key=gallery) вставлять только id галереи, логично?
Но тут тоже скорее всего засада: если ключ gallery не существует для конкр. поста/страницы, то плагин nextgen Gallery я думаю сильно озадачится по поводу отсутствия id галереи в <?php echo nggShowGallery(‘id’); ?> или нет?
Т.е. надо бы сначала проверить на существование произв. поля gallery для данного поста, а потом галерею выводить.
Вот с составлением этого условия у меня проблемы 🙁
не могу правильно скрестить
<?php echo nggShowGallery('gallery'); ?>
и
<?php if (is_single() || is_page() ) {
$key="gallery";
echo get_post_meta($post->ID, $key, true);
} ?>
Помогите составить такое условие:
имеем: custom field = gallery
если ключ gallery в посте/странице заполнено,
то <?php echo nggShowGallery(‘сюда выводим ключ gallery’); ?>
если ключа gallery нет
то ничего не выводим
А может чего попроще можно придумать?
Если ты делаешь вне цикла, то $post может быть не определена. Поэтому нужно использовать немного другой код.
Получаем номер записи, если это is_single или is_page
Получаем массив всех мета указанной записи:
– где $meta_key – нужное поле.
Дальше смотрим значение поля как массив и делаем с ним что нужно. 🙂
*голосом Петьки* «А я даже представить не могу, как он выглядит, этот квадратный трехчлен!»
Товарищи, ну помогите с условием?
Если вне цикла, но в single или page, будет работать такой код:
Если у тебя используется просто ключ gallery – где указывается номер, то цикл foreach вернет единственную переменную $val_val, котрая будет содержать номер нужной галереи.
То есть после цикла нужно просто дописать
Просто если этого не делать, то можно обзывать галереи не по номеру, а как-то произвольно. (Просто я не знаю, допускает ли это плагин.)
ААА! Спасибо! Работает! 😀
Что получилось:
Плагин next gallery допускает только указание id галереи, так что проверка кстати!
Подскажите, пожалуйста, как подобным образом вывести singlepic? В custom field можно указывать только id. ООчень надеюсь на вашу помощь)))
Ой, рано спросила, разобралась)))) Спасибо)))
<?php
$myid = $wp_query->post->ID;
$my_meta = get_post_custom_values( ‘image-id’, $myid );
if ( $my_meta) {
foreach ( $my_meta as $val_key => $val_val )
$val_val = (int) trim( $val_val );
echo nggSinglePicture($val_val, 250, 250, $mode="",$float="");
}
?>
Правильно?
Не совсем. Конструкция $mode="" в декларации функции означает, что 3-й параметр будет присвоен внутренней переменной $mode, а если он не будет указан, то будет присвоено значение "пустая строка" (т.н. дефолтное значение). То же относится и к $float. Если дефолтные значения устаривают, то их можно просто пропустить. Итого должно сработать echo nggSinglePicture($val_val, 250, 250); Хотя ХЗ что она там возвращает, смотреть надо 🙂
Одинаково работает и так: echo nggSinglePicture($val_val, 250, 250, $mode="",$float=""); и так: echo nggSinglePicture($val_val, 250, 250); 🙂 оставлю ваш вариант))) Спасибо!
Конечно, одинаково. Только $mode="" и $float="" порождают две (если не четыре) строковых переменных, которые мало того, что жрут память (не много, но все-таки), так еще и теоретически могут перебить значение нужной переменной. Так что это больше вопрос принципа чем работоспособности.
Я использую следующий код:
Все это внутри основного цикла. Но…. ничего не работает.
Вы везде рассматриваете доступность переменной $post, а у меня вот проблема с nggShowGallery: 🙁
Сорри. Не заметил что функция ничего не выводит, а возвращает. И, естесстно, не вписал перед ней "echo ".
в последней версии nextgen-gallery-133, этот код не работает. Синглпик теперь выводиться так [singlepic id=x w=width h=height].
но так:
не выводиться ничего. что делать? как?