WordPress get categories


There are times when you want to get a list of all the categories of your WordPress site, this is commonly found on a archive page. But I’ve recently created a mobile version of a site where a dropdown box was needed with a list of all the categories on the site. With WordPress this is very easy to do you can just use one of the built in functions to get all the categories for the site. The WordPress function we can use is get_categories().

 $categories = get_categories( $args ); 

This will return an array of category objects where you can loop through and get all the information you need. You can pass in one parameter to this function which you can use to narrow down which categories are returned. Here is a list of arguments you can send to the get_categories() function.

 <?php $args = array(  'type' => 'post',  'child_of' => 0,  'parent' => '',  'orderby' => 'name',  'order' => 'ASC',  'hide_empty' => 1,  'hierarchical' => 1,  'exclude' => '',  'include' => '',  'number' => '',  'taxonomy' => 'category',  'pad_counts' => false );?>   

Create A Dropdown Box Of Categories

The get_categories() function wasn’t the function that I used to create a dropdown on the mobile site. WordPress has another built in function to create a dropdowns populated with all the categories of the site. This function is wp_dropdown_categories().

 <?php wp_dropdown_categories( $args ); ?> 

This function takes one parameter which is a set of arguments to narrow down which categories are displayed. If you want to display all categories just leave this argument blank. The other arguments used in this function are:

 <?php $args = array(  'show_option_all' => '',  'show_option_none' => '',  'orderby' => 'ID',   'order' => 'ASC',  'show_count' => 0,  'hide_empty' => 1,   'child_of' => 0,  'exclude' => '',  'echo' => 1,  'selected' => 0,  'hierarchical' => 0,   'name' => 'cat',  'id' => '',  'class' => 'postform',  'depth' => 0,  'tab_index' => 0,  'taxonomy' => 'category',  'hide_if_empty' => false ); ?> 

To create a dropdown populated with only categories which have posts assigned to them use the following code snippet.

 <?php wp_dropdown_categories(array('hide_empty' => 1)); ?>   

paulund.co.uk

Функция get_the_category

Синтаксис функции get_the_category достаточно прост:

где параметр id это учетная запись поста для которого будут выводить категории. Куда более интересными есть примеры использования функции.

Отображение первой категории для поста

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

Как получить категории вне цикла Loop

Для этого в качестве параметра функции нужно передавать id поста, что и происходит в коде.

Вывод названия категории без ссылок

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

Убираем из title категории лишний текст

Ну, и напоследок, немного поразмыслив получился хак для вывода списка категории для поста без использования функции the_category, которую мы успешно заменяем на get_the_category. Если вы хотите добавить код непосредственно в то место шаблона, где выводятся категории, например, файл archive.php, то пишем что-то вроде:


Можно, в принципе разместить код для отображения категорий в файле функций, а потом в файлах шаблона поменять the_category на новую функцию, например, под названием my_thecat(). Конечно, не забудьте предварительно перед заменой добавить соответствующий код в файл функций functions.php:

Потестировал, все работает. Остается лишь один вопрос — насколько это все полезно и крайне необходимо. Если у вас один блог с постоянным дизайном, который вы хотите сделать самым лучшим, то можно потратить пару минут и внести соответствующие изменения. В случае если у вас таких блогов много, думаю, особой seo выгоды манипуляция с title не принесет в плане, проще купить ссылок в Rotapost на все эти проекты — кстати эксперимент по подъему тИЦ в системе успешно и позитивно завершен, скоро будет отчет об этом.

Вывод категорий кастомных записей

В комментариях подсказывают, что примеры, указанные выше, не работают для кастомных (пользовательских) типов записей. Я с этой задачей не сталкивался, поэтому могу вам лишь посоветовать погуглить решение в англоязычных блогах по ключу wordpress custom post type show category или же воспользоваться подсказкой пользователя Stinker (из комментариев). В месте вывода категорий нужно просто вставить код:


Где categoria_video — это таксономия пользовательской записи (она же кастомная). А теперь более подробно от куда и что. Например у нас есть:

Спасибо пользователю Stinker за подсказку, возможно, вам она пригодится.
P.S. Постовой. В одном из блогов рунета была найдена замечательная подборка темwordpress портфолио из 17-ти бесплатных качественных шаблонов.

wordpressinside.ru

wp_list_catergories()

wp_list_categories() creates and returns a formatted HTML code to display category lists. This function allows us to work on the formatted results by using custom walker class. This class extends Walker_Category to parse the category results.

The way of using this function is,

<?php    $args = array(  	'style' => 'list',  	'hide_empty' => 1,  	);   wp_list_categories($args);   ?>  <?php   	wp_list_categories(style=list&hide_empty=1);   ?>  

get_categories()

This WordPress function returns categories in an object array. From this array, we can retrieve categories to create our own format. And the code is,

<?php    $args = array(  	'style' => 'list',  	'hide_empty' => 1,  	);   get_categories($args);   ?>  <?php   	get_categories(style=list&hide_empty=1);   ?>  

wp_dropdown_categories()


This function returns WordPress categories as a dropdown list. And the way to use this function is,

<?php    $args = array(  	'style' => 'list',  	'hide_empty' => 1,  	);   wp_dropdown_categories( $args );   ?>  

wp_terms_checklist()

Similarly, this function returns category checkbox. wp_terms_checklist() function accepts 6 optional parameters. The code is,

<?php    wp_terms_checklist($postid,$decendent_and_self,$selected_categories,$popular_categories,$walker,$checked_ontop);   ?>  

and the parameters are,

  • $postid – To check specified post categories.
  • $decendent_and_self – To return specified category checkbox with its dependent Category checkboxes.
  • $selected_categories – To check specified array of categories.
  • $popular_categories – To override popular categories.
  • $walker – To work with the resultant HTML.
  • $checked_ontop – To move checked boxes to the top of the category tree.

This WordPress code tutorial was published on February 2, 2016.

↑ Back to Top

phppot.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.