• Как сделать так, чтобы если категория родительская, то в заголовке выводилось бы «Рубрика такая-то», а если дочерняя — то «Подрубрика такая-то». Как само условие сформулировать?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • function is_subcategory ($catid) {
    
      $currentcat = get_category($catid);
    
      if ( $currentcat->parent ) {
        return true;
      } else {
        return false;
      }
    }

    условный тег проверки на существование родительской рубрики.

    Автор Natali_Z

    (@natali_z)

    Дебаггер пишет, что неизвестна переменная &catid и, соответственно, само действие (вывод текста) не выполняется.

    дык туда надо ID рубрики пихнуть.
    что-то типа в category.php:

    <?php  if (is_category()) {
    $category = get_category(get_query_var('cat'));
    $cat_id = $category->cat_ID;
    if (is_subcategory($cat_id)) {echo 'это подрубрика';}else{echo 'это родительская';}
    } ?>

    а в functions.php сам условный тег:

    function is_subcategory ($catid) {
    
      $currentcat = get_category($catid);
    
      if ( $currentcat->parent ) {
        return true;
      } else {
        return false;
      }
    }

    Автор Natali_Z

    (@natali_z)

    Не, условие if — else тоже не подойдёт. На текущий момент заголовки архивных страниц выводятся в шаблоне archive.php кодом

    if ( is_category() ) :
    single_term_title( '<span class="title-regular">Рубрика: </span>' );

    А дальше следует целый список других elseif ( is_tag(), is_post_type_archive(), is_tax(), is_author() и т.д.), который заканчивается общим
    else :_e( 'Archives' ); endif;

    Вот это первое условие — if ( is_category() ) нужно как-то расширить, дополнить, не знаю что, чтобы получить на выходе для всех дочерних категорий заголовок «Подрубрика».

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

    Автор Natali_Z

    (@natali_z)

    Если бы я умела это делать — я бы и не спрашивала никого. Приделала бы сама всё что надо.

    Автор Natali_Z

    (@natali_z)

    Попробовала. Не работает.

    Автор Natali_Z

    (@natali_z)

    Может быть надо писать не ->parent, а child?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Заголовки архивных страниц» закрыта для новых ответов.