Не выводит все записи из ACF Wordpress

159
22 октября 2018, 17:30

На странице нужно сделать добавление карточек, сделал через ACF путем регистрации нового поста:

add_theme_support( 'post-thumbnails'); 
    register_post_type('main_cards', array(
        'label'  => null,
        'labels' => array(
            'name'               => 'Карточки на главной', 
            'singular_name'      => 'Карточки на главной', 
            'add_new'            => 'Добавить новую', 
            'add_new_item'       => 'Добавить новую карточку',
            'edit_item'          => 'Редактировать карточку', 
            'new_item'           => 'Новая карточка', 
            'view_item'          => 'Показать карточку',
            'not_found'          => 'Карточка не найдена', 
            'not_found_in_trash' => 'Карточка не найдена в корзине', 
            'menu_name'          => 'Карточки на главной', 
        ),
        'public'              => false,
        'show_ui'             => true, //public dependence
        'menu_icon'           => 'dashicons-format-status',
        'supports'            => array('title', 'thumbnail')
    ) );

Потом получил все поля в массив:

function get_main_cards() {
    $args = array(
        'orderby'   => 'date',
        'order'     => 'ASC',
        'post_type' => 'main_cards'
    );
    $main_cards = [];
    foreach ( get_posts($args) as $post ) {
        $main_cards_i = get_fields($post->ID);
        $main_cards_i['name'] = $post->post_title;
        $main_cards_i['img'] = get_the_post_thumbnail_url( $post->ID, 'image' );
        $main_cards[] = $main_cards_i;
    }
    return $main_cards;
}

И на странице вывожу поля таким образом:

               <?php

                    foreach ( get_main_cards() as $main_card ): 

                ?>
                <div class="items__col-item">
                    <div class="item__col-inner relative">
                        <div class="item__col-item">
                            <a href="#"><img src="<?php echo $main_card['img']; ?>" alt="1"></a>
                            <div class="absolute item__hover d-flex justify-content-center align-items-center">
                               <div class="item__col-btns d-flex align-items-center flex-column">
                                   <a href="#" class="item__col-btn">
                                       Preview Tabor
                                   </a>
                                   <a href="#" class="item__col-btn">
                                       View Details
                                   </a>
                               </div>
                            </div>
                        </div>
                    </div>
                    <div class="items__col-text text-center">
                        <span class="bold-letters"><?php echo $main_card['name']; ?></span> &mdash; <?php echo $main_card['desc']; ?>
                    </div>
                </div>
                <?php
                            endforeach;
                ?>

Но проблема в том что в массив попадает только 5 записей, а следующие при добавлении через админку просто не записываются в массив и не выводятся. В чем может быть проблема, кто знает? Спасибо.

Answer 1

У get_posts() есть предустановленные параметры, в том числе numberposts=5.

Сделайте так:

$args = array(
    'orderby'     => 'date',
    'order'       => 'ASC',
    'post_type'   => 'main_cards',
    'numberposts' => -1,
);
READ ALSO
Сравнение нескольких массивов

Сравнение нескольких массивов

Допустим есть 5 массивов (a1, a2, a3, a4, a5), в массивах содержатся idНеобходимо сравнить между собой массивы и записать в новый массив все id встречающиеся...

147
Редактирование большого файла

Редактирование большого файла

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

174
Как убрать обратный слэш?

Как убрать обратный слэш?

В результате выборки из базы получается стока [\"0708

285
Извлечь данные из вложенных json в php

Извлечь данные из вложенных json в php

Есть json строка вида:

144