Php цикл по категориям (и сгенерированные URL для всех сообщений в) - PullRequest
0 голосов
/ 06 июля 2018

Я довольно новичок в php (не намного дальше, чем настройка кода) Итак, что я хочу, это для каждой категории (кроме идентификатора категории 1, который не классифицирован) Я хочу URL категории + название категории И для каждого сообщения в категории, я хочу URL + заголовок (цикл максимум 3 раза)

, что у меня пока есть:

<div class="divs">
    <div class="divs">
        <div class="divs">
            <h3 class="divs">
                <a href="<?php echo get_category_link( "5" );?>">
                    <?php echo get_cat_name(5);?>
                </a>
            </h3>
        </div>

        <div class="divs">
            <ol>
                <?php
                    $args = array('category' => 5, 'post_type' =>  'post'); 
                    $postslist = get_posts($args);   
                    $i = 0; 

                    foreach ($postslist as $post) :  setup_postdata($post);{if(++$i > 3) break;} 
                ?>  

                        <li> 
                            <a href="<?php the_permalink(); ?>">
                                <?php the_title(); ?>
                            </a>
                       </li> 

                      <?php endforeach; ?> 
        </div>
    </div>
</div>
</ol>

Это делает то, что я хочу отлично, за исключением того, что он делает это только для категории ID 5 курса. Есть ли простой способ сделать этот цикл для всех категорий?

Edit: По сути, я хочу, чтобы код просматривал все категории, а не просто делал это для категории 5 (мы добавляем / удаляем категории, поэтому жесткое кодирование чисел бесполезно)

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Поскольку вы не хотите жестко кодировать идентификаторы категорий, вам нужно получить их через get_all_category_ids и просмотреть результат. Это может сработать:

<div class="divs">
    <div class="divs">
        <?php
        $categoryIds = get_all_category_ids();
        foreach($categoryIds as $categoryId): ?>
        <div class="divs">
            <h3 class="divs">
                <a href="<?php echo get_category_link($categoryId); ?>">
                    <?php echo get_cat_name($categoryId); ?>
                </a>
            </h3>
        </div>

        <div class="divs">
            <ol>
                <?php
                $args = array('category' => $categoryId, 'post_type' => 'post');
                $postslist = get_posts($args);
                $i = 0;

                foreach ($postslist as $post) : setup_postdata($post);
                    {
                        if (++$i > 3) {
                            break;
                        }
                    }
                    ?>

                    <li>
                        <a href="<?php the_permalink(); ?>">
                            <?php the_title(); ?>
                        </a>
                    </li>

                <?php endforeach; ?>
            </ol>
        </div>
        <?php endforeach; ?>
    </div>
</div>
0 голосов
/ 06 июля 2018

Это должно работать

<?php
$args = array( 'category__and' => array(2, 3, 4, 5), 'post_type' =>  'post' );
$i = 0; 
$postslist = get_posts( $args );   
foreach ($postslist as $post) {
    setup_postdata($post); 
    if (++$i > 4) break;
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...