Php show category name

get_categories() │ WP 2.1.0

Получает категорий в виде массива объектов. По каким критериям получить категории и как их отсортировать указывается в параметрах функции.

Параметры передаваемые этой функции очень похожи на параметры wp_list_categories(). Они также могут быть переданы в виде массива или строки запроса: type=post&order=DESC .

Хуки из функции

Возвращает

Array ( [0] => WP_Term Object ( [term_id] => 7 [name] => Codex [slug] => codex [term_group] => 0 [term_taxonomy_id] => 7 [taxonomy] => category [description] => [parent] => 3 [count] => 17 [filter] => raw [term_order] => 1 [cat_ID] => 7 [category_count] => 17 [category_description] => [cat_name] => Codex [category_nicename] => codex [category_parent] => 3 ) [1] => WP_Term Object ( . ) . )

Шаблон использования

$categories = get_categories( [ 'taxonomy' => 'category', 'type' => 'post', 'child_of' => 0, 'parent' => '', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'hierarchical' => 1, 'exclude' => '', 'include' => '', 'number' => 0, 'pad_counts' => false, // полный список параметров смотрите в описании функции http://wp-kama.ru/function/get_terms ] ); if( $categories )< foreach( $categories as $cat )< // Данные в объекте $cat // $cat->term_id // $cat->name (Рубрика 1) // $cat->slug (rubrika-1) // $cat->term_group (0) // $cat->term_taxonomy_id (4) // $cat->taxonomy (category) // $cat->description (Текст описания) // $cat->parent (0) // $cat->count (14) // $cat->object_id (2743) // $cat->cat_ID (4) // $cat->category_count (14) // $cat->category_description (Текст описания) // $cat->cat_name (Рубрика 1) // $cat->category_nicename (rubrika-1) // $cat->category_parent (0) > >

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

$categories = get_categories( $args );

Аргументы $args

Полный список параметров смотрите в get_terms().

taxonomy(строка) Название таксономии, которую нужно обрабатывать. Добавлено с версии 3.0.
По умолчанию: ‘category’ type(строка)

Тип категорий, которые будут получены.

Сортировка полученных данных по определенным критериям. Например, по количеству постов в каждой категории или по названию категорий. Доступны следующие критерии:

  • id или term_id — по ID.
  • name — по названию. По умолчанию.
  • count — по полю count в term_taxonomy — по количеству записей.
  • slug — по альтернативному названию.
  • description — по описанию.
  • term_group — по группе.
  • term_group — по группе.
  • parent — по полю parent.
  • include — по порядку указанному в параметре $include
  • slug__in — с версии 4.9. В порядке указанном в параметре $slug.
  • meta_value — по значению произвольного поля
  • meta_value_num — по значению произвольного поля, значение будет интерпретироваться как число, а не строка.
  • ключ «meta_query» — в параметре $meta_query мы можем указать параметры запроса по метаполям, и там же указать ключ для конкретного запроса. Этот ключ можно использовать как ключ для сортировки по соответствующему метаполю.
  • none — не сортировать
Читайте также:  Машинное обучение python практика

Направление сортировки, указанной в параметре «orderby»:

  • ASC — по порядку, от меньшего к большему (1, 2, 3; a, b, c);
  • DESC — в обратном порядке, от большего к меньшему (3, 2, 1; c, b, a).

Получать или нет пустые категории (не имеющие записей):

hierarchical(логический) Если параметр установлен в true, то в результат будут включены пустые дочерние категории, дочерние категории которых имеют записи (непустые).
По умолчанию: true exclude(строка/массив) Исключить какие-либо категории из списка. Нужно указывать ID категорий через запятую или в массиве. Если этот параметр указан, параметр child_of будет отменен.
По умолчанию: » include(строка/массив) Вывести списком только указанные категории. Указывать нужно ID категорий через запятую или в массиве.
По умолчанию: » number(число) Лимит. Число категорий, которые будут получены. По умолчанию без ограничений — будут получены все категории. pad_counts(логический) Если передать true, то число которое показывает количество записей в родительских категориях будет суммой своих записей и записей из дочерних категорий.
По умолчанию: false

Примеры

#1 Список категорий и их описание

Этот пример покажет нам как можно вывести списком ссылки на категории, где сразу после каждой ссылки будет идти описание категории (указывается при создании/редактировании категории):

 'name', 'order' => 'ASC' ] ); foreach( $categories as $category )< echo '

Category: name ) . '" ' . '>' . $category->name.'

'; echo '

Description:'. $category->description . '

'; echo '

Post Count: '. (int) $category->count . '

'; > ?>

#2 Получение только категорий верхнего уровня

Для этого, установите значение ‘parent’ => 0 . Этот пример получает ссылку и название категорий верхнего уровня.

$cats = get_categories( array( 'orderby' => 'name', 'parent' => 0 ) ); foreach ( $cats as $cat ) < printf( '%2$s
', esc_url( get_category_link( $cat->term_id ) ), esc_html( $cat->name ) ); >

#3 Выпадающий список

Для того, чтобы создать выпадающий список из категорий мы можем воспользоваться другой специальной для этой цели, функцией wp_dropdown_categories():

wp_dropdown_categories( [ 'hide_empty' => 0, 'name' => 'category_parent', 'orderby' => 'name', 'selected' => $category->parent, 'hierarchical' => true, 'show_option_none' => __('None') ] );

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

Поэтому, в некоторых случаях будет логичнее создать выпадающий список с помощью этой функции — get_categories(). Пример (предполагается что нам нужно вывести подкатегории (дочерние) категории 10):

  

#4 Получим только категории в которых есть посты

По умолчанию функция get_category() возвращает ТОЛЬКО категории, в которых есть посты (не пустые категории). Это означает, что если для категории не назначен пост, то такая категория не будет получена.

Читайте также:  Java garbage collection on exit

Чтобы этого избежать и показать все категории независимо есть в ней посты или нет, нужно указать параметр ‘hide_empty’ => false :

$args = array( 'hide_empty' => false, ); $cats = get_categories( $args ); // вернет все категории (включая пустые)

Заметки

Список изменений

Код get_categories() get categories WP 6.2.2

function get_categories( $args = '' ) < $defaults = array( 'taxonomy' =>'category' ); $args = wp_parse_args( $args, $defaults ); /** * Filters the taxonomy used to retrieve terms when calling get_categories(). * * @since 2.7.0 * * @param string $taxonomy Taxonomy to retrieve terms from. * @param array $args An array of arguments. See get_terms(). */ $args['taxonomy'] = apply_filters( 'get_categories_taxonomy', $args['taxonomy'], $args ); // Back compat. if ( isset( $args['type'] ) && 'link' === $args['type'] ) < _deprecated_argument( __FUNCTION__, '3.0.0', sprintf( /* translators: 1: "type =>link", 2: "taxonomy => link_category" */ __( '%1$s is deprecated. Use %2$s instead.' ), 'type => link', 'taxonomy => link_category' ) ); $args['taxonomy'] = 'link_category'; > $categories = get_terms( $args ); if ( is_wp_error( $categories ) ) < $categories = array(); >else < $categories = (array) $categories; foreach ( array_keys( $categories ) as $k ) < _make_cat_compat( $categories[ $k ] ); >> return $categories; >

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

Рубрики

  • cat_is_ancestor_of()
  • category_description()
  • category_exists()
  • get_cat_ID()
  • get_cat_name()
  • get_category()
  • get_category_by_slug()
  • get_category_link()
  • get_category_parents()
  • get_the_category_by_ID()
  • in_category()
  • single_cat_title()
  • wp_create_category()
  • wp_dropdown_categories()
  • wp_insert_category()
  • wp_list_categories()

Источник

Php show category name with php

the products are saved in MySQL database! in my header I have the following code which will show/display the categories from the mysql database in my : currently I am using the following code in my page but this will only show one product and that is the one in the mysql database no matter which category I click on in my header! I’ve made the query in phpMyAdmin and it works.

Joomla, how to display category name in module latest

I’ve been trying to display the category name after the contents of the ‘Latest’ module in Joomla.

I’ve made the query in phpMyAdmin and it works. But when I try to use this in the php module template page the page stops at the point the php should start.

$db = &JFactory::getDBO(); $id = JRequest::getString('id'); $db->setQuery("SELECT `title` FROM `#__categories` WHERE `id` = " .$item->catid); $category = $db->loadResult(); echo $category; 

When I replace $item->catid with a fixed number, it works like it does in phpMyAdmin. Can anyone tell me where I go wrong?

$item is already having the category title so no need to get it through a db query. You can simply do this in your tmpl file. You can get the category using $item->category_title

UPDATE: if you want to display as you asked in comments then you need to do this

Php — Display current category name, Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

Читайте также:  Html android input file

Show all the products that have same category name in PHP/Mysql?

I am trying to display all the products with the same category in a php page.

the products are saved in MySQL database!

in my header I have the following code which will show/display the categories from the mysql database in my header.php :

currently I am using the following code in my product_list.php page but this will only show one product and that is the LAST one in the mysql database no matter which category I click on in my header!

 0) < while($row = mysqli_fetch_array($query, MYSQLI_ASSOC))< $id = $row["id"]; $product_name = $row["product_name"]; $price = $row["price"]; $category = $row["category"]; $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); $dynamicList2 = '
' . $product_name . '
' . $product_name . '
Price: £' . $price . '
View Product Details
 
'; > > > else < $dynamicList2 = "We have no products listed in our store yet"; >?>

I don’t understand where I am going wrong!

could someone please help me out with this?

$category = preg_replace('#[^0-9]#i', '', $_GET['category']); $dynamicList2 = ""; $sql = "SELECT * FROM products WHERE category='".$category."' LIMIT 25" ; 

Change your literal category for the variable $category

Php — Get Category name from Post ID, Add a comment. 1. You can a single line to echo out the category name by passing the post ID simply by using this: echo wp_get_post_terms (get_the_ID (), ‘category’) [0]->name; Share. answered Aug 26, 2021 at 13:44. Lee. 4,110 5 22 63.

Show categories with subcategories and n-sub categories using PHP+MySQL

I have a problem with my code. What is the best way to display all categories with n-subcategories?

My MySQL database looks like:

CREATE TABLE categories ( category_id INT UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INT UNSIGNED NOT NULL DEFAULT 0, name TEXT NOT NULL, user INT NOT NULL, PRIMARY KEY (category_id), INDEX parent (parent_id) ); 

Where user is id from another table (if category have user = ‘2’ , user with id = ‘2’ can see that category)

category_id parent_id name user 1 0 Main category 1 2 2 1 Subcategory 1 2 3 1 Subcategory 2 2 4 3 SubSubcategory 1 2 

How can I view categories like

    ‘; while($row = mysql_fetch_array($first_level-cats)) < ?>
  1. ‘; while($row = mysql_fetch_array($second_level-cats)) < ?>
  2. ‘; while($row = mysql_fetch_array($sthird_level-cats)) < ?>
  3. echo ‘

I’ve tried my best to solve your query,crosscheck table name and columns according to your schema .

Try to use Mysqli extension instead of Mysql

  1. $categories[0][0]
      «; $counterj = count($categories)-1; for($i=1,$j=$counterj;$i<$j;$i++)< if(count($categories[$i])==1)< echo "
    1. $catgeories[$i][0]»; > else < echo "
    2. $categories[$i][0]
        «; > $counterl = count($categories[$i])-1; for($k=1,$l=$counterl;$k<$l;$k++)< echo "
      1. $categories[$i][$k]»; > if ($l>1) echo «

      Php — WooCommerce: Display Category Name, Is there a way to display the product category name on the WooCommerce archive-product.php page. My product category name is «Bracelets», and I’d like that to be displayed as a title on the page. I’m using wp_title() currently:

      Источник

Оцените статью