Как найти пост с неработающей ссылкой на изображение и удалить этот пост.

Вопрос или проблема

У меня есть несколько постов в моем автоблоге, у которых по ошибке крон-задачи было удалено изображение для превью. Как найти все эти посты (посты с неработающей ссылкой на изображение) и удалить их все или установить изображение по умолчанию, если изображение для превью отсутствует, не просматривая один за другим тысячи постов.

Простое решение для проверки вашего веб-сайта и поиска неработающих ссылок и изображений на вашем сайте – это плагин: https://wordpress.org/plugins/link-checker

Вы можете попробовать использовать плагин Broken Link Checker. Он обнаруживает неработающие ссылки и изображения. Он также исправляет их с помощью редиректов. Так что вам не придется просматривать один за другим тысячи постов и удалять неработающие.

Ответ или решение

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

1. Использование плагинов для проверки ссылок

Плагины для проверки ссылок могут значительно упростить задачу. Рекомендую рассмотреть следующие решения:

  • Broken Link Checker: Этот плагин сканирует ваши посты на наличие неработающих ссылок и изображений. Он предоставляет список всех найденных проблем и позволяет вам быстро их исправить. Например, вы можете переопределить отсутствующие изображения на стандартные или удалить посты с битыми ссылками.

  • Link Checker: Альтернативный плагин, который также способен находить неработающие изображения на вашем сайте. Он предоставляет удобный интерфейс для удаления или редактирования постов с проблемами.

2. Автоматизированные запросы через WPQuery

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

Вот общий пример:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => -1,
);

$query = new WP_Query($args);

foreach ($query->posts as $post) {
    $thumbnail_id = get_post_thumbnail_id($post->ID);

    if (!$thumbnail_id || !wp_get_attachment_image_src($thumbnail_id, 'full')) {
        // Удалить пост или установить стандартное изображение
        // wp_delete_post($post->ID);
        // update_post_meta($post->ID, '_thumbnail_id', 'ID_стандартного_изображения');
    }
}

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

3. Ручное редактирование через базу данных

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

Пример SQL-запроса может выглядеть так:

SELECT * FROM wp_posts
WHERE post_type = 'post' AND ID NOT IN (
    SELECT DISTINCT post_id FROM wp_postmeta
    WHERE meta_key = '_thumbnail_id'
);

Этот запрос выдаст все посты, для которых не заданы изображения. Далее вы можете решить, как поступить с этими постами.

4. Установка стандартного изображения

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

Например:

add_filter('post_thumbnail_html', 'set_default_thumbnail', 20, 5);
function set_default_thumbnail($html, $post_id, $post_thumbnail_id, $size, $attr) {
    if (empty($html)) {
        // Укажите ID стандартного изображения
        $default_thumbnail_url = wp_get_attachment_url('ID_стандартного_изображения');
        return '<img src="' . $default_thumbnail_url . '" alt="Стандартное изображение">';
    }
    return $html;
}

Заключение

Комбинируя использование плагинов для проверки ссылок с программными методами и SQL-запросами, вы сможете быстро избавиться от постов с отсутствующими изображениями или установить для них стандартные изображения. Эти методы помогут сохранить порядок на вашем сайте и улучшить пользовательский опыт, что положительно скажется на SEO.

Следует отметить, что перед выполнением любых действий рекомендуется создать резервную копию вашей базы данных. Это обеспечит безопасность ваших данных и позволит легко восстановить сайт в случае необходимости.

Оцените материал
Добавить комментарий

Капча загружается...