Ограничение количества слов в заголовке записи

11 дек. 2012 г., 10:18:19
Просмотры: 35.2K
Голосов: 7

Есть ли способ ограничить количество слов в заголовке записи?

Я искал в интернете, но ничего не нашел.

Я знаю только, что можно ограничить или сделать отрывок только для содержимого записи.

0
Все ответы на вопрос 4
0

просто используйте этот код там, где вам нужно отобразить заголовок с ограниченным количеством слов

<?php echo wp_trim_words( get_the_title(), 5 ); ?>

замените число 5 в коде выше на то количество слов, которое вам нужно отобразить.

С уважением.

11 дек. 2012 г. 11:23:00
0

Если в конце заголовка нужно добавить знак продолжения "..."

<?php
    echo wp_trim_words( get_the_title(), 10, '...' );
?>

Если в конце заголовка не нужно добавлять знак продолжения "..."

<?php
    echo wp_trim_words( get_the_title(), 10 );
?>
15 янв. 2018 г. 14:11:52
3

Для этого есть встроенная функция: wp_trim_words().

add_filter( 'the_title', 'wpse_75691_trim_words' );

function wpse_75691_trim_words( $title )
{
    // ограничиваем до 10 слов
    return wp_trim_words( $title, 10, '' );
}

Если вы хотите обрезать текст в зависимости от определенных свойств записи, попросите WordPress передать ID записи в вашу функцию. Вот пример фильтрации по типу записи. Но вы также можете проверять связанные термины, возраст записи, автора или даже мета-данные.

add_filter( 'the_title', 'wpse_75691_trim_words_by_post_type', 10, 2 );

function wpse_75691_trim_words_by_post_type( $title, $post_id )
{
    $post_type = get_post_type( $post_id );

    if ( 'product' !== $post_type )
        return $title;

    // ограничиваем до 10 слов
    return wp_trim_words( $title, 10, '' );
}
11 дек. 2012 г. 11:08:42
Комментарии

Как это можно применить только к определенному типу записи?

Pete Pete
26 июл. 2019 г. 16:24:42

Нашел решение...

`add_filter( 'the_title', 'wpse_75691_trim_words' );

function wpse_75691_trim_words( $title ) { $cur_pt = get_post_type(); if( 'some_post_type' == $cur_pt ) { // ограничить до десяти слов return wp_trim_words( $title, 10, '' ); } else { return $title; } }`

Pete Pete
26 июл. 2019 г. 17:00:05

@Pete Смотрите мое обновление. Я добавил пример использования объекта записи.

fuxia fuxia
26 июл. 2019 г. 20:49:22
0
function limit_word_count($title) {
    $len = 5; // измените это значение на нужное количество слов
    if (str_word_count($title) > $len) {
        $keys = array_keys(str_word_count($title, 2));
        $title = substr($title, 0, $keys[$len]);
    }
    return $title;
}
add_filter('the_title', 'limit_word_count');

Вы можете установить любое ограничение практически на что угодно, вам просто нужен правильный фильтр

11 дек. 2012 г. 10:32:58