WordPress как на ладони
wordpress jino

get_category_by_slug() WP 2.3.0

Получает данные категории по её альтернативному названию (слагу).

Работает на основе: get_term_by()
✈ 1 раз = 0.000684с = медленно | 50000 раз = 18.52с = медленно PHP 7.0.2, WP 4.4.2

Хуков нет.

Возвращает

объект (массив) данных о категории.

Использование

<?php get_category_by_slug( $slug ) ?>
$slug(строка) (обязательный)
Альтернативное название категории. Название которое используется в УРЛе.
По умолчанию: нет

Примеры

#1. Получим ID категории, передав функции её слаг:

$idObj = get_category_by_slug('category-name'); 
$id = $idObj->term_id;

Переменная $idObj будет содержать в себе следующие данные:

// ID категории
$cat->cat_ID
// Название категории
$cat->cat_name
// Альтернативное название категории
$cat->category_nicename
// Описание категории (задается на странице редактирования категории)
$cat->category_description
// ID родительской категории
$cat->category_parent
// Количество записей в категории
$cat->category_count

Заметки

  • Использует <a href="/function/get_term_by">get_term_by()</a>, чтобы получить объект категории.

  • Использует _make_cat_compat(), чтобы сделать объект категории совместимый с версиями позднее 2.3.0

Код get category by slug: wp-includes/category.php WP 4.9

<?php
function get_category_by_slug( $slug  ) {
	$category = get_term_by( 'slug', $slug, 'category' );
	if ( $category )
		_make_cat_compat( $category );

	return $category;
}

Cвязанные функции

Из раздела: Рубрики

get_category_by_slug 6 комментариев
  • mupic cайт: art-wallpapers.ru

    А можно также для метки?

    Ответить3.8 года назад #
  • Петр @

    А вы не подскажете, как вывести при помощи слага пользовательскую рубрику, которая была сделана для созданных пользовательских записей? Или каким-либо другим путем, т.к. все стандартные функции работают только для встроенных рубрик.

    Ответить2.1 года назад #
  • Максим @

    Автор, привет!
    Ситуация следующая:

    • в wordpress есть ограничение на количество символов в URL и при генерации URL на русском его обрезает.
      Действия:
    • т.е. при создании записи, указываем заголовок записи:
      Что то там что в заголовке
    • далее генерируется:
      Постоянная ссылка: http://сайт.ru/что-то-там-что-в-заголовке.html
      Вопрос:
      Как увеличить длину кирилического slug в вордпресс?

    Мои действия при решении вопроса:

    • открываю файл:
      /wp-includes/post.php
      заменил все встречающиеся в файле значение 200 на 500
    • далее открываю БД:
      меняю post_name varchar(200) на post_name varchar(500)

    Мои действия по решению вопроса - решают его частично.
    Т.е. всё работает, но обрезает на уровне генерации:
    Постоянная ссылка: http://сайт.ru/что-то-там-что-в-заголовке.html
    Если нажать кнопку "Изменить" и добавить обрезанный текст и нажать "ОК", то всё сохранятся и не обрезается.

    Начал искать что отвечает за этот блок:
    Постоянная ссылка: http://сайт.ru/что-то-там-что-в-заголовке.html
    Нашёл:
    /wp-admin/edit-form-advanced.php
    строка 592:

    <div id="edit-slug-box" class="hide-if-no-js">
    	<?php
    		if ( $has_sample_permalink )
    			echo $sample_permalink_html;
    	?>
    </div>

    А дальше, я не знаю куда двигаться. Где стоит "обрезалка" постоянной ссылки -
    не пойму.
    Просьба помочь разобраться.
    Заранее благодарю!

    Ответить4 месяца назад #

Здравствуйте, !

Ваш комментарий