Автоматически извлекать изображение и заголовок, затем выбрать социальное изображение и заголовок.

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

Мой сайт использует пользовательский тип записей, созданный с помощью Jet Engine. Каждый раз, когда я создаю новую запись, мне необходимо вводить одно и то же название и выбирать одно и то же изображение в нескольких местах: изображение новости (Jet Engine), заголовок новости (Jet Engine), заголовок в соцсетях (Yoast SEO), изображение в соцсетях (Yoast SEO), заголовок X (Yoast SEO) и изображение X (Yoast SEO). Кроме того, мне нужно заполнить мета-описание и затем вставить его дважды в соответствующие вкладки социальных сетей — Социальные и X.

Как я могу автоматизировать этот процесс, особенно в 2024 году, и потребует ли это много кода? Эта задача отнимает ненужное время и увеличивает вероятность ошибок. В идеале мы должны иметь возможность извлекать эту информацию из записи без необходимости повторять эти дополнительные шаги.

Заранее спасибо!

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

Чтобы автоматизировать процесс извлечения заголовка и изображения из вашего кастомного типа постов (созданного с помощью Jet Engine) и их дальнейшую выборку для метаданных в Yoast SEO, можно воспользоваться хуками и фильтрами, предоставляемыми WordPress. Ниже представлен метод, который поможет автоматизировать эти задачи и снизить вероятность ошибок.

Шаги для автоматизации

  1. Использование хуков WordPress: Вам нужно будет создать пользовательский функционал в файле functions.php вашей темы или воспользуйтесь подключаемым модулем (плагином).

  2. Извлечение заголовка и изображения:

    • Используйте фильтр для автоматического заполнения полей метаданных на основе содержимого поста.
add_action('save_post', 'auto_fill_yoast_meta', 10, 3);
function auto_fill_yoast_meta($post_id, $post, $update) {
    // Проверка на тип поста
    if (get_post_type($post_id) != 'your_custom_post_type') {
        return;
    }

    // Получение заголовка и изображения
    $title = get_the_title($post_id);
    $image_id = get_post_thumbnail_id($post_id);
    $image_url = wp_get_attachment_url($image_id);

    // Изменение метаданных Yoast SEO
    if (function_exists('wpseo_set_title')) {
        wpseo_set_title($title, $post_id);
    }
    if (function_exists('wpseo_set_link')) {
        wpseo_set_link($image_url, $post_id);
    }

    // Дополнительно, вы можете установить мета-описание
    $meta_description = 'Ваше мета-описание'; // Измените в соответствии с нуждами
    update_post_meta($post_id, '_yoast_wpseo_metadesc', $meta_description);
}
  1. Автоматическое заполнение полей для социальных сетей:
    • Этим же кодом вы можете указать значение для полей социальных сетей.
add_action('wpseo_social', 'auto_fill_social_meta', 10, 1);
function auto_fill_social_meta($post_id) {
    if (get_post_type($post_id) != 'your_custom_post_type') {
        return;
    }

    $title = get_the_title($post_id);
    $image_id = get_post_thumbnail_id($post_id);
    $image_url = wp_get_attachment_url($image_id);

    // Установка социальных метаданных
    update_post_meta($post_id, '_yoast_wpseo_opengraph-title', $title);
    update_post_meta($post_id, '_yoast_wpseo_opengraph-image', $image_url);
    update_post_meta($post_id, '_yoast_wpseo_twitter-title', $title);
    update_post_meta($post_id, '_yoast_wpseo_twitter-image', $image_url);
}

Заключение

Данный подход значительно сократит время, затрачиваемое на обновление информации для социальных сетей и метаданных. Написанный код автоматически извлекает заголовок и изображение из вашего кастомного типа постов и переносит эти данные в метаданны Yoast SEO. Не забудьте протестировать код в безопасной среде перед внедрением на рабочий сайт.

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

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

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