Поддержка Проблемы и решения Цикл для вывода категорий особым образом

  • Здравствуйте.
    Есть категория, для которой я создал отдельный файл category-mycat.php . Создал небольшой css код, который поможет мне вывести запись о категории — и тут я встал в тупик. Раньше не работал с php, так что даже не знаю, как эти переменные заполнить и как изменить этот цикл(
    Цикл, скопированный из archive.php

    while ( have_posts() ) : the_category();
    get_template_part( 'content', get_post_format() );

    Есть такой HTML код, который берёт настройки из CSS файла

    <div class="сat_body">
    	<p style="margin-bottom: 0px;">
    		<a href="ссылка на категорию">
    			<?php if (function_exists('z_taxonomy_image')) z_taxonomy_image(); ?>
    		</a>
    	</p>
    
    	<div class="cat_name">
    		<a href="ссылка на категорию">Имя категории</a>
    	</div>
    	Описание категории
    
    	<div class="cat-btn">
    		<a class="btn" title="Имя категории" href="ссылка на категорию">Имя категории</a>
    	</div>
    </div>

    Буду рад помощи. Спасибо!

    • Тема изменена 6 лет назад пользователем awesomeperk.
Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Уточните сама страница категорий работает вообще открывается ли через новый файл и что именно вы имели ввиду когда написали «запись о категории»? Это посты или описание категории? Каким особым образом их необходимо вывести? Вероятно если название файла задано верное, то всё должно работать если вы полностью скопировали всё содержимое из стандартного файла категорий.

    Модератор Yuri

    (@yube)

    Есть такой CSS code

    
    <div class="сat_body">
    	<p style="m

    Это не CSS. Это PHP.

    Автор awesomeperk

    (@awesomeperk)

    Извините, не дописал.
    Есть категория, для неё я создал несколько дочерних. При открытии категории mycat WordPress должен брать код из файла category-mycat.php и формировать с помощью него страницу. Страница будет показывать доступные категории в категории mycat, где каждая категория будет отображена с помощью HTML кода выше.

    • Ответ изменён 6 лет назад пользователем awesomeperk.

    отображена с помощью CSS кода выше

    но это html 🙁

    Автор awesomeperk

    (@awesomeperk)

    Совсем глаза замылились( Имел в виду, что создал CSS код, а подключаюсь к нему с помощью div-ов в html коде, который кинул выше 🙂

    При открытии категории mycat WordPress должен брать код из файла category-mycat.php и формировать с помощью него страницу

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

    Автор awesomeperk

    (@awesomeperk)

    Сообщение о том, что записей в этой категории нет. Это нормальное поведение, так как я код скопировал из archive.php, который работает с записями, а не с категориями.
    Как я понял, за отображение страницы отвечает этот код:

    	<?php if ( have_posts() ) : ?>
    
    		<header class="page-header">
    			<?php
    				himalayas_archive_title( '<h1 class="page-title">', '</h1>' );
    				himalayas_archive_description( '<div class="taxonomy-description">', '</div>' );
    			?>
    		</header><!-- .page-header -->
    
    		<?php
    		// Start the Loop.
    		while ( have_posts() ) : the_post();
    			get_template_part( 'content', get_post_format() );
    
    		// End the loop.
    		endwhile;
    
    		get_template_part( 'navigation', 'archive' );
    
    	// If no content, include the "No posts found" template.
    	else :
    		get_template_part( 'no-results', 'archive' );
    
    	endif;
    	?>
    Автор awesomeperk

    (@awesomeperk)

    Опечатался в цикле: он такой

    while ( have_posts() ) : the_post();
    get_template_part( 'content', get_post_format() );
    Автор awesomeperk

    (@awesomeperk)

    Я знаю, как работать с лупом для записей.
    Поставил начало лупа такое:
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    Середина может быть такой (как дальше её расширить, добавив описание, ссылку и т.п. понятно)

    <p><a href="<?php echo get_permalink(); ?>"> 
    <?php the_title(); ?> 
    </a></p>

    Конец лупа такой

    <?php endwhile; else: ?>
    <p><?php _e('Ничего не было найдено.'); ?></p>
    <?php endif; ?>

    Но как работать с категориями? Если я хочу вместо инфы о записях (как в этом примере), вывести инфу о дочерних категориях этой категории?

    Модератор Yuri

    (@yube)

    Если я хочу вместо инфы о записях (как в этом примере), вывести инфу о дочерних категориях этой категории?

    1. Выкинуть Цикл, потому что он выводит записи, которые Вам, как понял не нужны.
    2. Вставить на его место вызов wp_list_categories(array('child_of'=>ID_этой_категории))

    Home


    либо использовать get_categories() и организовать цикл вывода вручную, если стандартный список не устраивает. Примеры есть в документации.

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