Intereting Posts
Как изменить постоянные ссылки на таксономию и сообщения типа post Отображение уведомлений при активации плагина Проверьте, включен ли пользовательский тип отправки для кнопок TinyMCE Изменение названия документа только на шаблоне пользовательской страницы Как отредактировать e-mail WordPress, который дает пользователю пароль? Способность «promotion_users» позволяет кому-то создать новую учетную запись администратора? PHP Предупреждение: preg_match () ожидает & PHP Предупреждение: strip_tags () Как отображать Frontend CSS только для администратора Прикрепление изображения к пользовательским конечным точкам Успешный переадресация Сортировать по категориям Add_image_size не обрезается Как запросить персонализированный тип почтового сообщения? Что такое хороший ресурс, чтобы узнать о создании пользовательских ходунков? Как короткий код может заменить изображение в сообщении?

Изменить выход в галерею для визуализации по-разному на странице 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' ); 

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

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

Чтобы получить изображения из галереи_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' ); });