Цикл ACF для сетки, получить / отобразить настраиваемое поле - PullRequest
0 голосов
/ 09 октября 2019

Я использую этот фрагмент кода в своем шаблоне Wordpress:

<?php
    $args = array( 'numberposts' => '12', 'post_type' => 'training', 'post_status' => 'publish' );
    $recent_posts = wp_get_recent_posts( $args );
    foreach( $recent_posts as $recent ) {
        echo '<div class="col-xs-12 col-md-4"><article><div class="kartel"><a href="' . get_permalink($recent["ID"]) . '">';
        if ( has_post_thumbnail( $recent["ID"]) ) {
              echo  get_the_post_thumbnail($recent["ID"],'medium');
        }
        echo '</a></div><a href="' . get_permalink($recent["ID"]) . '"><h3>' .   $recent["post_title"].'</h3></a> ';

        echo '<em>Doelgroep //</em>
        <p>One-liner/super korte omschrijving</p>';
        echo '<a href="' . get_permalink($recent["ID"]) . '">Tell me more</a> ';
        echo '</article></div>';
    }
    wp_reset_query();
?>

Дело в том, что теперь я хочу добавить настраиваемое поле (скажем 'custom_field'), которое отображает пользовательский фрагмент подминиатюра для сетки. Я могу получить обычные поля (выдержка, заголовок и т. Д.), Но не настраиваемые поля. Например the_field ('custom_field');не работает ..

Есть идеи / предложения?

Надеюсь услышать от вас, ребята!

Filt

1 Ответ

1 голос
/ 09 октября 2019

Прежде всего измените свой подход к запросам и циклам Wordpress, используя класс WP_Query.

<?php
$args = array( 'numberposts' => '12', 'post_type' => 'training', 'post_status' => 'publish' );
$loop = new WP_Query($args);
if( $loop->have_posts() ) {
    while( $loop->have_posts() ){
        $loop->the_post(); ?>
        <div class="col-xs-12 col-md-4">
            <article>
                <div class="kartel">
                    <a href="<?php the_permalink(); ?>">
                        <?php if( has_post_thumbnail("medium") ) {
                            the_post_thumbnail( "medium" );
                        }
                        ?>
                    </a>
                </div>
                <a href="<?php the_permalink(); ?>">
                    <?php the_title("<h3>","</h3>"); ?>
                </a>
                <em>Doelgroep //</em>
                <a href="<?php the_permalink(); ?>">Tell me more</a>
            </article>
        </div>
    <?php }
}
wp_reset_postdata();
?>

Позже, в цикле ваших сообщений, вы можете вызвать пользовательское поле, используя:

the_field ('custom'); //which prints the result on screen

$var = get_field ('custom'); //or echo get_field ('custom') which returns the content in a variable.

Если вы хотите вспомнить определенное настраиваемое поле, вставленное в сообщение, страницу или пользовательский тип сообщения, вы должны использовать следующий синтаксис:

the_field ('custom', $ post_id);

get_field ('custom', $ post_id)

Вот и все:)

...