Intereting Posts
Ajax Pagination на фильтре Ajax Отключить панель администратора для конкретного контента. Изменение имени пользователя после регистрации, чтобы обойти проблему дублирования писем? Как предотвратить выполнение запроса по умолчанию, сохраняя при этом возможность использовать WP_Query в шаблоне? Откройте кнопку «Просмотр страницы» в редакторе в новой вкладке Как я могу добавить / добавить контент в the_content на домашней странице через плагин? Как сделать почтовый контент с каждого показа в одном и том же div В какой части ядра WordPress таблицы пользователей и usermeta объединяются? Сделать заголовок импорта в WordPress из атрибута XMP «Заголовок» удалить меню администратора wp по роли пользователя пользователя 500 Ошибка только одной страницы в администраторе WP Создавать разные сайты по многосайтовому эталонному сценарию Как перенаправить нового пользователя WordPress на предыдущую страницу после регистрации поддержка тегов пользовательского типа Theme Customizer – текст без настройки (комментарий или тег <p>)

Справка с инструкцией if else для разделения содержимого с вложения изображения

введите описание изображения здесь В настоящее время у меня возникают проблемы с выполнением следующих действий.

Я хотел бы отделить изображение (wp_get_attachment_image) от содержимого (get_the_content) с помощью условного оператора для отображения области содержимого в стиле div.

Поэтому, если изображение отображается без какого-либо содержимого в редакторе, чтобы вообще не отображать стилизованный контентный div.

<!--display image--> <div class="featured-image"> <?php $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo wp_get_attachment_image( $attachment->ID, 'full' ); } } ?> </div> <!--styled content div--> <div class="portfolio-content"> <?php echo preg_replace('/<img[^>]+./','',get_the_content()); ?> </div> 

Технически это должно работать:

 <!--display image--> <div class="featured-image"> <?php $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo wp_get_attachment_image( $attachment->ID, 'full' ); } } ?> </div> <?php $content = preg_replace('/<img[^>]+./','',get_the_content()); if($content != ""):?> <!--styled content div--> <div class="portfolio-content"> <?php echo $content; ?> </div> <?php endif;?> 

ОБНОВИТЬ:

Я заработал. Но есть несколько недостатков всей идеи. Вот что я сделал:

  1. Создал страницу.
  2. Добавьте 1 изображение и некоторый текст на эту страницу.

Затем я добавил скрипт выше. Я получил прикрепленное изображение, чтобы показать, как вы, но никакого контента. Первое, что я заметил, это то, что вам нужно сбросить запрос, чтобы снова получить запрос страницы. Поэтому после первого цикла вам нужно вставить:

 <?php wp_reset_query(); wp_reset_postdata();?> 

Теперь функция get_the_content будет эхо правильно. Однако есть еще две проблемы:

  1. Функция preg_replace удаляет изображения, а не ссылку вокруг изображений. Обычно, когда вы добавляете изображение в редактор, по умолчанию изображение имеет ссылку. Поэтому, когда мы проверяем, является ли переменная $ content пустой, она вернет false, потому что там остается пустой тег привязки. Таким образом, в этом случае ваши изображения не могут иметь ссылок.

  2. Я также заметил, что изображение может быть прикреплено только к одному сообщению. Это означает, что начальный цикл будет работать только при загрузке изображения во время редактирования этого сообщения. Вы не могли использовать другое изображение, которое ранее было загружено в другое сообщение.

Во всяком случае, я все еще получал код для работы после того, как я исправил все вышеперечисленное.

Я снова отправляю код с обновлением и с комментариями. Посмотрите, сможете ли вы заставить его работать.

 <div class="featured-image"> <?php $args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ); //First loop will get all images attached to this post $attachments = get_posts( $args ); if ( $attachments ) { foreach ( $attachments as $attachment ) { echo wp_get_attachment_image( $attachment->ID, 'full' ); } } ?> </div> <?php wp_reset_query(); wp_reset_postdata(); // this will reset the data from the first loop and give us access again to the main post loop?> <?php //this will remove the images from the content editor // it will not remove links from images, so if an image has a link, you will ended up with an empty lin. $content = preg_replace('/<img[^>]+./','',get_the_content()); //this IF statement checks if $content has any value left after the images were removed // If so, it will echo the div below it.. if not will won't do anything. if($content != ""):?> <!--styled content div--> <div class="portfolio-content"> <?php echo $content; ?> </div> <?php endif;?>