2015-04-26 6 views
0

Я работаю над редактированием файла плагина Wordpress.Изменение порядка списка категорий в Wordpress

В приведенном ниже каталоге указаны категории в алфавитном порядке. Я хочу перечислить их по ID категории, в порядке возрастания.

<?php foreach($categories as $category){ 
    $rand = rand(0,99); 
    $catname = get_cat_name($category); 
    $find =  array("&", "/", " ","amp;","&#38;"); 
    $replace = array("", "", "", "","");   
    $catname = str_replace($find,$replace,get_cat_name($category)); 
?>     
    <li> 
     <a href="#fragment-<?php echo $catname; ?>"><?php echo get_cat_name($category); ?></a> 
    </li> 
<?php } ?> 

Я пытался работать с функцией get_cat_ID, но я не программист, так что я застрял. Пожалуйста помоги.

+0

Можете ли вы опубликовать вывод 'echo print_r (array_keys ($ categories), true)'? – Javide

+0

Да, вот оно: Массив ( [0] => 0 [1] => 1 [2] => 2 ) – Alex

ответ

0

Вместо того, чтобы запрашивать категории внутри файла темы, лучше всего зарегистрировать пользовательскую функцию в теме Wordpress.

погуглить "WordPress порядок категории по идентификатору" дайте мне эту ссылку

https://wordpress.org/support/topic/how-to-order-my-categories-by-id-instead-of-name. Ответ там хороший.

add_filter('get_the_categories','get_the_category_sort_by_id'); 

function get_the_category_sort_by_id($categories) { 
    usort($categories, '_usort_terms_by_ID'); 
    return $categories; 
} 

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

<?php 
$categories = get_the_category_sort_by_id($categories); 
foreach($categories as $category){ 
    ... 
?> 
    <li> 
     <a href="#fragment-<?php echo $catname; ?>"><?php echo get_cat_name($category); ?></a> 
    </li> 
<?php } ?> 
+0

Хорошо, я могу вставить, что в functions.php, но дон Не знаю, как изменить исходный код, чтобы дать мне список. Пожалуйста, храните в mund, что есть также якорь, присвоенный именем категории: Alex

+0

@Alex Я отредактировал свой ответ. Это не проверено, но вы получите эту идею. – ihsan

+0

Я попытался собрать все это вместе, но у меня появились ошибки ... 'Warning: Отсутствует аргумент 1 для get_the_category_sort_by_id(), вызывается в full-width-block.php в строке 208 и определяется в functions.php в строке 5 Предупреждение: usort() ожидает, что параметр 1 будет массивом, null указан в functions.php в строке 6 Предупреждение: неверный аргумент, предоставленный foreach() в full-width-block.php в строке 209' – Alex