Intereting Posts
Есть ли режим обслуживания в ядре WordPress? как я могу остановить пользовательские поля, у которых есть апострофы от разрыва моего кода Пользовательский тип сообщения, не отображающий все записи оператор switch для контента таксономии Добавление javascript в functions.php вызывает проблемы с моим шаблоном Пользовательский генератор боковой панели в Redux Framework Разрешение почтовых вложений без ввода текста Можно ли клонировать WP в другой каталог на том же сервере? Ограничить количество загруженных вложений определенного контекста Получите все изображения с одной страницы, используя этот запрос. функция запуска при входе в класс Как отобразить дескриптор всех внешних скриптов в очереди на странице параметров плагина? Скользящий карусель в wordpress wp_kses () разделяет атрибуты данных, даже если они находятся в разрешенном списке Храните содержимое сообщения в переменной php и выведите их, используя цикл for

Изменить выход в галерею для визуализации по-разному на странице PAGE и POST

Я все еще изучаю WordPress и постепенно улучшаюсь, но мой набор навыков не соответствует параметрам, которые я прошу.

Мне нужно настроить вывод галереи для двух разделов на моем сайте: 1) Страницы портфолио и 2) Блоги

На PORTFOLIO PAGES я хочу, чтобы WP отображал галерею как теги изображений с атрибутами, как показано ниже.

<img width="575" height="500" src="ImagePath/ImageName.jpg" class="attachment-full" alt="Alt Text"> <img width="575" height="500" src="ImagePath/ImageName.jpg" class="attachment-full" alt="Alt Text"> <img width="575" height="500" src="ImagePath/ImageName.jpg" class="attachment-full" alt="Alt Text"> <img width="575" height="500" src="ImagePath/ImageName.jpg" class="attachment-full" alt="Alt Text"> 

Вот код, который я нашел онлайн, который я изменил. Я не полностью понимаю раздел $ output и не уверен в том, чтобы изменить часть его кода. Мне не нужен код «class = 'gallery-item», но я не уверен, что еще мне «не нужно». Нужны ли мне «itemtag», «icontag», «captiontag» и т. Д.? Я не использую их, но не уверен, могу ли я просто удалить. Если я это сделаю, будут ли они по умолчанию возвращаться к основным значениям по умолчанию?

 // ---------------------------------------------------------------- // GALLERY OUTPUT FOR PORTFOLIO PAGES add_shortcode( 'gallery', 'modified_gallery_shortcode' ); function modified_gallery_shortcode($attr) { if(is_page_template('page-portfolio.php')){ // EDIT this slug $attr['size']="full"; $attr['link']="none"; $attr['itemtag']="li"; $attr['icontag']="span"; $attr['captiontag']="p"; $output = gallery_shortcode($attr); $output =strip_tags($output,'<img>'); $output =str_replace(array(" class='gallery-item'"),array(""),$output); }else{ $output = gallery_shortcode($attr); } return $output; } add_filter( 'use_default_gallery_style', '__return_false' ); 

В BLOG POSTS я хочу, чтобы WP отображал галерею с использованием неупорядоченного списка с атрибутом, как показано ниже.

 <ul class="gallery"> <li><a href='ImagePath/ImageName.jpg' class="fancybox" rel="group" title='Title Text'><img width="150" height="150" src="ImagePath/ImageName.jpg" class="attachment-thumbnail" alt="Alt Text"></a></li> <li><a href='ImagePath/ImageName.jpg' class="fancybox" rel="group" title='Title Text'><img width="150" height="150" src="ImagePath/ImageName.jpg" class="attachment-thumbnail" alt="Alt Text"></a></li> <li><a href='ImagePath/ImageName.jpg' class="fancybox" rel="group" title='Title Text'><img width="150" height="150" src="ImagePath/ImageName.jpg" class="attachment-thumbnail" alt="Alt Text"></a></li> </ul> 

Я пробовал модифицировать «Выход галереи для страниц портфолио» для соответствия требованиям к форматированию для этого типа сообщений, но не повезло!

 // ---------------------------------------------------------------- // GALLERY OUTPUT FOR BLOG POSTS add_shortcode( 'gallery2', 'modified_gallery_shortcode2' ); function modified_gallery_shortcode2($attr) { if(is_page_template('page-portfolio.php')){ // EDIT this slug $attr['size']="full"; $attr['link']="file"; $attr['itemtag']="li"; $attr['icontag']="span"; $attr['captiontag']="p"; $output = gallery_shortcode($attr); $output =strip_tags($output,'NOT SURE HOW TO FORMAT'); $output =str_replace(array(" class='gallery-item'"),array(""),$output); }else{ $output = gallery_shortcode($attr); } return $output; } add_filter( 'use_default_gallery_style', '__return_false' ); 

ЛЮБАЯ ПОМОЩЬ ОЧЕНЬ ОЧЕНЬ ОЦЕНКА! Спасибо!

Чтобы получить изображения из галереи_shortcode в список, я просто последовал примеру. strip_tags, кажется, выделяет все элементы, которые вы определяете, поэтому я сохранил img и li . После этого я просто обернул html в ul чтобы он соответствовал тому, что вы искали. $output – это просто строка, которая генерируется после запуска gallery_shortcode и все после этого просто удаляет материал из этой строки.

Вы можете вернуться к этой странице gallery_shortcode, чтобы узнать, нужно ли вам / хотите сохранить определенные атрибуты.

 add_shortcode( 'gallery', 'modified_gallery_shortcode' ); function modified_gallery_shortcode($attr) { if(is_page_template('page-portfolio.php')) { $attr['size']="full"; $attr['link']="none"; $attr['itemtag']="li"; $attr['icontag']="span"; $attr['captiontag']="p"; $output = gallery_shortcode($attr); $output =strip_tags($output,'<img>'); $output =str_replace(array(" class='gallery-item'"),array(""),$output); } elseif ( 'post' === get_post_type() ) { $attr['size']="full"; $attr['link']="file"; $attr['itemtag']="li"; $attr['icontag']="span"; $attr['captiontag']="p"; $output = gallery_shortcode($attr); // generate html $output = strip_tags($output,'<a><img><li>'); // remove extra tags, but keep these $output = str_replace(" class='gallery-item'", "", $output); // remove class attribute $output = "<ul class=\"gallery\" >$output</ul>"; // wrap in ul } else { $output = gallery_shortcode($attr); } return $output; // final html } add_filter( 'use_default_gallery_style', '__return_false' ); 

Просто используйте обычный ярлык галереи и очень поздно замените функцию рендеринга (обратного вызова) в wp_head :

 add_action( 'wp_head', function() { if ( 'post' === get_post_type() ) return add_shortcode( 'gallery', 'modified_gallery_shortcode2' ); if ( 'portfolio' === get_post_type() ) return add_shortcode( 'gallery', 'modified_gallery_shortcode' ); });