2016-09-26 5 views
3

Я использовал этот код:как отображать все категории в wordpress?

 $categories = wp_get_post_categories(get_the_ID()); 
     foreach($categories as $category){ 
      echo '<div class="col-md-4"><a href="' . get_category_link($category) . '">' . get_cat_name($category) . '</a></div>'; 
     } 

, но возвращает только одну категорию, как я могу получить все категории?

+0

Это показывает вам категории, выбранные для публикации, на которой вы находитесь, - вы хотите показать все доступные категории на сайте? –

+0

Да, вы можете мне помочь? – Clorge32

ответ

5

В коде, вы дали нам вы выбрали категории, выбранные для конкретного почтового get_the_ID() делает эту часть. Однако вы бы лучше с помощью другой функции get_categories() https://developer.wordpress.org/reference/functions/get_categories/, которые вы могли бы сделать так:

$categories = get_categories(); 
foreach($categories as $category) { 
    echo '<div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>'; 
} 

Вы также можете передать через аргументы, чтобы быть более конкретным (при необходимости) - см https://developer.wordpress.org/reference/functions/get_terms/ подробную информацию о том, что вы можете пройти через

+0

ok tnx это именно то, что я искал :) – Clorge32

0

так:

<?php 
$categories = get_categories(array(
    'orderby' => 'name', 
    'order' => 'ASC' 
)); 

foreach($categories as $category) { 
echo '<div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>'; 
} 
+0

ok tnx, но почему этот код возвращает 3 раз (а) эту же категорию? У меня есть 4 разных категории, по крайней мере, одна статья. – Clorge32

+0

Попробуйте отредактировать код – WordpressDave

1

Вы также можете использовать wp_list_categories и передать ему аргументы, чтобы показать только то, что вам нужно. Полный список аргументов можно найти в кодексе: https://developer.wordpress.org/reference/functions/wp_list_categories

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

$args = array(
    'child_of'   => 0, 
    'current_category' => 0, 
    'depth'    => 0, 
    'echo'    => 1, 
    'exclude'    => '', 
    'exclude_tree'  => '', 
    'feed'    => '', 
    'feed_image'   => '', 
    'feed_type'   => '', 
    'hide_empty'   => 0, 
    'hide_title_if_empty' => false, 
    'hierarchical'  => true, 
    'order'    => 'ASC', 
    'orderby'    => 'name', 
    'separator'   => '<br />', 
    'show_count'   => 0, 
    'show_option_all'  => '', 
    'show_option_none' => __('No categories'), 
    'style'    => 'list', 
    'taxonomy'   => 'category', 
    'title_li'   => __('Categories'), 
    'use_desc_for_title' => 1, 
); 

var_dump(wp_list_categories($args));