Как можно выводить данные из произвольных полей в мета заголовке и мета описании в WordPress?

Добрый вечер! <br/> Прошу прощения за возможные нечеткие формулировки, так как я не имею опыта в программировании. У меня следующая ситуация: <br/> <br/> Я использую Wordpress, и у меня настроены произвольные типы записей с произвольными полями. Я также применяю плагин Yoast SEO (бесплатная версия), который мне удобен, так как я уже задал шаблоны для заголовков и описаний (мета-тегов) для тегов, категорий и других элементов. <br/> <br/> Моя задача заключается в том, чтобы вывести информацию о meta title и meta description с дополнительных полей в произвольном типе записей. <br/> <br/> Могли бы вы подсказать код, который я мог бы добавить в файл single.php, чтобы вывести свои мета-поля? Если они не заполнены, хотел бы, чтобы отображались стандартные мета-теги от плагина Yoast SEO. <br/> <br/> Заранее спасибо за помощь, надеюсь, я объяснил свою задачу ясно.
  • 13 декабря 2024 г. 18:24
Ответы на вопрос 1
Добрый вечер! Ваша задача довольно распространенная, и на самом деле ее можно решить с помощью небольшого добавления кода в файлы вашей темы. Основной идеей является использование фильтра, который будет позволять вам изменять мета-заголовки и мета-описания, добавляемые плагином Yoast SEO.

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

1. **Создайте функцию для получения произвольных полей.**
2. **Используйте фильтры Yoast SEO для изменения мета-заголовка и мета-описания.**

Вот пример кода, который вы можете добавить в файл `functions.php` вашей темы:

```php
function custom_meta_tags($title) {
    if (is_singular('your_custom_post_type')) { // Замените на ваш произвольный тип записи
        $custom_title = get_post_meta(get_the_ID(), 'your_custom_title_field', true); // Замените 'your_custom_title_field' на имя вашего произвольного поля

        if (!empty($custom_title)) {
            return $custom_title; // Возвращаем кастомный заголовок, если он существует
        }
    }
    return $title; // Если кастомного заголовка нет, возвращаем оригинальный
}

function custom_meta_description($description) {
    if (is_singular('your_custom_post_type')) { // Замените на ваш произвольный тип записи
        $custom_description = get_post_meta(get_the_ID(), 'your_custom_description_field', true); // Замените 'your_custom_description_field' на имя вашего произвольного поля
        
        if (!empty($custom_description)) {
            return $custom_description; // Возвращаем кастомное описание, если оно существует
        }
    }
    return $description; // Если кастомного описания нет, возвращаем оригинальное
}

// Подключаем функции к фильтрам Yoast SEO
add_filter('wpseo_title', 'custom_meta_tags');
add_filter('wpseo_metadesc', 'custom_meta_description');
```

### Шаги для добавления кода:

1. Замените `your_custom_post_type` на ваш фактический произвольный тип записи.
2. Замените `your_custom_title_field` и `your_custom_description_field` на имена ваших произвольных полей (мета-полей).
3. Сохраните изменения в файле `functions.php`.

### Примечание:

- Убедитесь, что перед внесением изменений в файл `functions.php` у вас есть резервная копия вашей темы или вы используете дочернюю тему.
- После добавления кода проверьте вашу страницу, чтобы убедиться, что мета-теги обновляются в зависимости от наличия/отсутствия произвольных полей.

Если у вас возникнут дополнительные вопросы или трудности, не стесняйтесь спрашивать!
Похожие вопросы