Как добавить посты из ACF в ВордПресс

У меня есть два кастомных поля ACF в записях WordPress, мне нужно выводить на главной посты из записей используя эти кастомные записи, при щелчке на них переход к определенной записи

имя первой в ACF text-title это для вставки в код второй kratkoe_opisanie_proekta_dlya_glavnoj

Для вывода постов на главной странице с использованием кастомных полей ACF, таких как text-title и kratkoe_opisanie_proekta_dlya_glavnoj, можно сделать следующее:

  1. Запрос постов: Используем стандартный WP_Query для вывода постов.
  2. Получение значений кастомных полей: Используем функцию get_field() для получения данных ACF.
  3. Вывод информации на главной: Выводим заголовки и краткое описание в HTML, а также создаём ссылку на пост.

Вот пример кода, который можно добавить в файл front-page.php (или в шаблон главной страницы):

<?php
// WP_Query для получения постов
$args = array(
    'post_type' => 'post', // Здесь укажите тип записи, например, 'post' или ваш кастомный тип
    'posts_per_page' => 10, // Количество постов, которое нужно вывести
);

$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
        // Получаем данные из ACF
        $custom_title = get_field('text-title'); // Первое кастомное поле
        $short_description = get_field('kratkoe_opisanie_proekta_dlya_glavnoj'); // Второе кастомное поле
        ?>
        <div class="post-item">
            <h2>
                <a href="<?php the_permalink(); ?>">
                    <?php echo esc_html( $custom_title ); // Выводим заголовок ?>
                </a>
            </h2>
            <p><?php echo esc_html( $short_description ); // Выводим краткое описание ?></p>
        </div>
        <?php
    endwhile;
    wp_reset_postdata();
else :
    echo '<p>Записей не найдено</p>';
endif;
?>

Что делает этот код:

  1. Запрашивает посты с типом post.
  2. Для каждого поста:
    • Выводит заголовок (text-title) с ссылкой на сам пост.
    • Выводит краткое описание проекта для главной страницы (kratkoe_opisanie_proekta_dlya_glavnoj).
  3. Если посты не найдены, выводится сообщение «Записей не найдено».

Если у вас кастомный тип записи, замените 'post_type' => 'post' на название вашего типа.

Этот код можно адаптировать под вашу тему и дизайн.

$custom_title это переменная?

Да, переменные в PHP обозначаются символом $, и в вашем случае $custom_title и $short_description — это переменные, которые получают данные из кастомных полей ACF с помощью функции get_field().

В данном примере:

  • $custom_title хранит значение кастомного поля text-title.
  • $short_description хранит значение кастомного поля kratkoe_opisanie_proekta_dlya_glavnoj.

Эти переменные затем используются для вывода данных на страницу.

А что такое $the_query = new WP_Query( $args ); в ВордПресс?

$the_query = new WP_Query( $args ); — это код, создающий объект класса WP_Query в WordPress. Этот объект используется для выполнения кастомных запросов к базе данных и получения постов на основе заданных условий.

Расшифровка:

  • WP_Query — это встроенный класс WordPress, который позволяет выполнять запросы к базе данных для получения постов, страниц, или других типов записей. Он предоставляет более гибкие возможности, чем стандартный цикл WordPress.
  • $args — это массив аргументов, который передаётся в WP_Query. В массиве можно указать различные параметры, такие как тип записей (post_type), количество записей для вывода (posts_per_page), категорию, метки, таксономии и другие условия для выборки постов.
  • new WP_Query( $args ) — создаёт новый экземпляр класса WP_Query, который инициализирует запрос с переданными параметрами.
$args = array(
    'post_type' => 'post',       // Тип записи, например, посты блога
    'posts_per_page' => 10,      // Количество постов для отображения
);

$the_query = new WP_Query( $args ); // Создаём новый запрос на основе аргументов

В результате выполнения этого кода, в переменной $the_query будет находиться объект с результатами запроса. Этот объект можно использовать для перебора постов и их вывода в цикле.

После запроса используется стандартный цикл WordPress (while ... endwhile) для работы с результатами:

if ( $the_query->have_posts() ) :  // Проверяем, есть ли посты
    while ( $the_query->have_posts() ) : $the_query->the_post(); // Перебираем посты
        // Здесь идет вывод постов
    endwhile;
    wp_reset_postdata(); // Сбрасываем глобальные переменные постов после выполнения цикла
endif;

Этот код позволяет выполнять более сложные запросы, чем стандартный цикл WordPress, и выводить записи по кастомным условиям.

Массив аргументов $args передаётся в WP_Query, чтобы задать условия для выборки постов из базы данных WordPress. Это позволяет вам точно контролировать, какие записи будут загружены, и как они будут отображаться. По сути, массив $args определяет «правила» для запроса.

Вот почему $args нужен:

  1. Определение типа записей: Например, вы можете указать, что хотите получить записи определённого типа, как посты блога (post), страницы (page), или кастомные типы записей, такие как «портфолио» или «продукты».
  2. Фильтрация постов: Вы можете фильтровать посты по категориям, меткам, таксономиям, или другим параметрам. Например, можно запросить посты только из конкретной категории или только те, которые были опубликованы за последний месяц.
  3. Количество постов: Можно указать, сколько записей нужно получить на странице, например, 5, 10 или все записи.
  4. Сортировка: Можно задать, в каком порядке будут выводиться посты — по дате, по алфавиту, по ID или по любому другому полю.

Пример аргументов $args:

**`$args`** — это массив аргументов, который передаётся в `WP_Query`. зачем он туда передается?

Массив аргументов $args передаётся в WP_Query, чтобы задать условия для выборки постов из базы данных WordPress. Это позволяет вам точно контролировать, какие записи будут загружены, и как они будут отображаться. По сути, массив $args определяет «правила» для запроса.

Вот почему $args нужен:

  1. Определение типа записей: Например, вы можете указать, что хотите получить записи определённого типа, как посты блога (post), страницы (page), или кастомные типы записей, такие как «портфолио» или «продукты».
  2. Фильтрация постов: Вы можете фильтровать посты по категориям, меткам, таксономиям, или другим параметрам. Например, можно запросить посты только из конкретной категории или только те, которые были опубликованы за последний месяц.
  3. Количество постов: Можно указать, сколько записей нужно получить на странице, например, 5, 10 или все записи.
  4. Сортировка: Можно задать, в каком порядке будут выводиться посты — по дате, по алфавиту, по ID или по любому другому полю.

Пример аргументов $args:

$args = array(
    'post_type' => 'post',          // Запрашиваем только посты блога
    'posts_per_page' => 10,         // Максимум 10 постов на странице
    'category_name' => 'news',      // Только посты из категории "news"
    'order' => 'DESC',              // Порядок — сначала новые
    'orderby' => 'date'             // Сортировка по дате публикации
);

Когда массив $args передаётся в WP_Query, WordPress использует его для создания SQL-запроса к базе данных, чтобы вернуть именно те записи, которые соответствуют указанным критериям.