Intereting Posts
Как удалить экземпляр виджета WordPress? Как сортировать сообщения с несколькими страницами «Порядок» не влияет на порядок пользовательских запросов Что такое «wordpress theming»? Установка get_queried_object Что случилось с этим кодом? Добавить комментарии панели администратора? Нажатие кнопки «Добавить» для пользовательской таксономии перемещает только элемент Программно изменяющаяся постоянная ссылка, когда публикуется одинаковый тип публикации Клиент не может проверить продукт, даже если он находится на складе Идентификатор сообщения в конце перманентной работы Эффективность URL-адресов (положительно)? Невозможно добавить медиафайлы на страницу Сортировать по позициям в пользовательских полях в загружаемых по моим счетам плагинах @woocommerce Googles jQuery: Есть ли преимущества для его использования? Оптимальное решение для разработки темы WordPress?

Подготовьте или добавьте изображение в содержание сообщения

Я работаю с дочерней темой и файлом functions.php, чтобы добавить изображение на сообщения с определенным тегом ( Videos в коде). Я пытался создать функцию, но у меня есть некоторые проблемы, а именно, что на сайте, когда я загружаю сообщение с этим тегом, он сбой, похоже, что он остается в цикле, и после этого мне нужно вручную удалить все повторяющиеся изображения (я просто хочу) из сообщений в базе данных (PhpMyAdmin)

Не могли бы вы помочь мне решить проблему и иметь рабочий код?

Важное обновление : я использую RSS-канал, и мне нужно, чтобы изображение тоже было в фиде (я имею в виду в базе данных таблиц столбцов)

Вот мой код в functions.php :

 /** * Prepend image to post if it has a specific tag * * @param String $content - WP Post Content for display * * @return String $content - WP Post Content for display */ function theme_videos_append_image( $content ) { global $post; // It would be easier if you got this URL from Attachment ID $upload_dir_arr = wp_upload_dir(); // Get upload directory array ( https://developer.wordpress.org/reference/functions/wp_upload_dir/#user-contributed-notes ) $static_image_url = $upload_dir_arr['baseurl'] . '/2017/11/upliftingscroll.jpg'; // Ensure we are viewing a Post, and it has the Videos tag if( has_tag( 'Videos', $post->ID ) ) { $has_image = get_post_meta( $post->ID, '_video_image_added', true ); // Check if our postmeta exists // If is does not have our postmeta - add it if( empty( $has_image ) ) { $image = sprintf( '<p><img src="%1$s" alt="" class="img-responsive" /></p>', $static_image_url ); // Create image $content = $image . $content; // prepend image // Update post so we don't need to add the image again $success = wp_update_post( array( 'ID' => $post->ID, 'post_content' => $image . $post->post_content, ) ); // If the post updated, create postmeta letting us know later it has the image if( false !== $success && !is_wp_error( $success ) ) { update_post_meta( $post->ID, '_video_image_added', true ); } } } return $content; } add_filter( 'the_content', 'theme_videos_append_image' ); 

Solutions Collecting From Web of "Подготовьте или добавьте изображение в содержание сообщения"

Heres более простая версия вашей функции:

 <?php add_filter( 'the_content', 'theme_videos_append_image' ); function theme_videos_append_image( $content ) { global $post; $upload_dir_arr = wp_upload_dir(); $static_image_url = $upload_dir_arr['baseurl'] . '/2017/11/upliftingscroll.jpg'; $tag = '<p><img src="' . $static_image_url . '" alt="" class="img-responsive" /></p>'; return has_tag( 'Videos', $post->ID ) ? $tag . $content : $content; } ?> 

Проверьте, является ли это самым элегантным решением для получения URL-адреса изображения. Кажется немного странным для меня.

Возможно, указанный вами цикл существует, поскольку в the_content также может применяться фильтр the_content . Поэтому, если вы хотите придерживаться своего решения, попробуйте сначала добавить мета-сообщение, а затем обновить содержимое сообщения … но я не думаю, что это необходимо.

Расширение решений Johannes Grandy. Вы также должны подключиться к фильтру the_excerpt_rss , выполнив:

 add_filter('the_excerpt_rss', 'theme_videos_append_image'); add_filter( 'the_content', 'theme_videos_append_image' ); function theme_videos_append_image( $content ) { global $post; $upload_dir_arr = wp_upload_dir(); $static_image_url = $upload_dir_arr['baseurl'] . '/2017/11/upliftingscroll.jpg'; $tag = '<p><img src="' . $static_image_url . '" alt="" class="img-responsive" /></p>'; return has_tag( 'Videos', $post->ID ) ? $tag . $content : $content; }