Как в php обрезать строку по словам?

Пример обрезки строки по словам

В WordPress существует функция wp_trim_words(), которая позволяет обрезать строку по указанному числу слов. К сожалению, эта функция никак не учитывает длину слов, поэтому полученный результат может быть во многих случаях неприемлем. Но не беда, можно воспользоваться следующей функцией:

//функция обрезки текста по словам start
function wph_cut_by_words($maxlen, $text) {  
    $len = (mb_strlen($text) > $maxlen)? mb_strripos(mb_substr($text, 0, $maxlen), ' ') : $maxlen;
    $cutStr = mb_substr($text, 0, $len);
    $temp = (mb_strlen($text) > $maxlen)? $cutStr. '...' : $cutStr;
    return $temp;
}  
//функция обрезки текста по словам end

Пользоваться ей очень просто:

Как получить ярлык (slug) текущей рубрики?

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

<?php 
if ( is_single() ) {
    $cats =  get_the_category();
    $cat = $cats[0];
} else {
    $cat = get_category( get_query_var('cat') );
}
$cat_slug = $cat->slug; // ярлык рубрики
$cat_id = $cat->cat_ID; // ID рубрики
$cat_name = $cat->name; // название рубрики
?>

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

Как вернуть в WordPress менеджер ссылок?

Страница Ссылки в админке

До версии 3.5 в WordPress существовал "менеджер ссылок", про который нынче большинство пользователей совсем ничего не знают. Однако разработчики движка физически этот самый менеджер ссылок из движка не удаляли (он всего лишь скрыт на новых установках движка), поэтому его можно вернуть назад. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как выполнить шорткод из php-кода?

Часто при разработке темы или плагина возникает ситуация, когда необходимо из php-кода выполнить какой-либо шорткод. Зачастую, начинающие разработчики пишут для этого свою собственную функцию, хотя WordPress предоставляет возможность выполнить любой шорткод всего лишь одной простенькой функцией:

<?php echo do_shortcode("[your_shortcode]"); ?>

Где [your_shortcode] это и есть необходимый вам шорткод. Не забудьте только, что результат выполнения шорткода вы должны будете сами оформить в нужные html-теги, так как функция автоформатирования текста в этом случае работать не будет (или обработайте результат функцией wpautop(), если не хотите вручную форматировать результат работы шорткода).

Как отключить архивы по авторам?

Ссылка на архив автора

В большинстве случаев никто не использует на сайте архивы по авторам. Это банально не имеет смысла, если автор на сайте один. И даже если он не один, то куча лишних страниц дублирующего контента вам вовсе не нужна (каноникал в движке прописывается только для записей). Факт того, что вы не используете архивы по авторам, вовсе не означает, что WordPress эти архивы не создаст при открытии ссылки вида "/author/nick" (как на скриншоте). Можно закрыть индексацию страниц архивов через robots.txt, но лучше будет вообще избавиться от этих архивов полностью, так как поисковики зачастую игнорируют директивы в robots.txt. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как использовать html-теги в описаниях рубрик и меток?

Пример удаленных html-тегов

WordPress по умолчанию удаляет всю html-разметку в описаниях рубрик (меток и прочих таксономий) при их сохранении. Если в вашей теме используются описания рубрик, то вывод этих описаний в обычных тегах параграфа может быть неприемлемым. Данное поведение WordPress можно исправить, для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как запретить индексацию страниц с 404 ошибкой?

Метатег robots

Запретить индексацию страниц с 404 ошибкой (не найдено) можно либо с помощью SEO-плагинов, либо с помощью небольшого кода, который вам необходимо добавить в файл functions.php вашей темы:

//запрет индексирования страниц с ошибкой 404 start
function wph_noindex_for_404() {
    if( is_404() ) {
        echo '<meta name="robots" content="noindex, follow" />'.PHP_EOL;
    }
}
add_action('wp_head', 'wph_noindex_for_404');
//запрет индексирования страниц с ошибкой 404 end