Как я могу сделать мой вывод сказать тип, а не типы, если show_count меньше, чем 2 в WordPress

Так что я использую wp_list_categories вывести набор списков и show_count равно true так что я могу видеть количество сообщений в этой категории.

В любом случае, мне удалось использовать этот код в моем functions.php и удалить круглые скобки вокруг моего количества сообщений, обернуть его диапазоном и сказать "Types" после номера.

Проблема в том, что если у меня есть только 1 пост, назначенный на эту категорию, он не должен быть множественным "Types" , Если он равен менее 2, следует сказать, "Type" ,

Вот мой код, который я использую для этого в functions.php:

/**
 * filter the wp_list_categories and wrap with <span>
 */

add_action('pre_get_posts', 'mr_modify_archive_taxonomy_query');

$links = add_filter('wp_list_categories', 'cat_count_span');

function cat_count_span($links) {
    $links = str_replace('</a> (', '</a> <span class="pull-right">', $links);
    $links = str_replace(')', ' Types</span>', $links);
    return $links;
}

Мне просто нужно добавить условие как-то, что определяет show_count и пусть это скажет:

if it equals less than 2 echo "Type" else echo "Types",

Просто очень трудно дать это условно.

1 ответ

Не уверен в структуре $links, но вы можете использовать count() если это индексированный массив, чтобы получить количество ссылок, например,

add_filter('wp_list_categories', 'cat_count_span');
function cat_count_span($links) {

  $needle ="<li"; // e.g. <li> <a etc.
  $count= substr_count($links, $needle);
  $word= 'Types';

  if($count==1) $word= 'Type';      

  $links = str_replace('</a> (', '</a> <span class="pull-right">', $links);
  $links = str_replace(')', $word.'</span>', $links);
  return $links;
}
Другие вопросы по тегам