Как правильно оформить название записи, чтобы оно содержало название и рубрику через знак тире?

Как создать формат заголовка записи "Название - Рубрика" и формат заголовка рубрики как "название рубрики" с помощью функций в файле functions.php?
  • 15 августа 2024 г. 17:13
Ответы на вопрос 2
Для оформления названия записи через знак тире ("Название - Рубрика") вам нужно в файле functions.php добавить следующий код:

```php
function custom_title_format($title) {
    if (is_single()) { // Проверяем, что мы на странице записи
        $categories = get_the_category(); // Получаем категории записи
        if ($categories) {
            $category = $categories[0]; // Берем первую категорию
            $category_name = $category->name; // Получаем название категории
            $title = $title . ' - ' . $category_name; // Добавляем название категории к заголовку записи
        }
    }
    return $title; // Возвращаем новое название записи
}
add_filter('wp_title', 'custom_title_format', 10, 2);
```

Для оформления заголовка рубрики как "название рубрики" в файле functions.php добавьте следующий код:

```php
function custom_category_title_format($title) {
    if (is_category()) { // Проверяем, что мы на странице рубрики
        $title = single_cat_title('', false); // Получаем название рубрики и добавляем к заголовку
    }
    return $title; // Возвращаем новый заголовок рубрики
}
add_filter('wp_title', 'custom_category_title_format', 10, 2);
```

После добавления этих функций в файл functions.php названия записей будут отображаться в формате "Название - Рубрика", а заголовки рубрик в формате "название рубрики".
Попробуйте так: 
add_filter('document_title_parts', 'test', 10, 1);

function test($title) {
    if (is_single()) {
        $categories = get_the_category();
        if (!empty($categories)) {
            $title['title'] .= ' — ' . $categories[0]->name;
        }
    } elseif (is_category()) {
        $title['title'] = single_cat_title('', false);
    }

    return $title;
}
Похожие вопросы