Получить значение настраиваемого поля и отобразить в веб-интерфейсе WordPress

В настоящее время я работаю в теме smart mag, где на главной странице newsticker все последние новости публикуются по умолчанию. Но я хочу показать только выбранный пост в newsticker. Для этого я установил плагин «Meta box». И написал собственное мета-поле.

add_filter( 'rwmb_meta_boxes', 'breaking_news_radio_demo' );

function breaking_news_radio_demo( $meta_boxes )

{$prefix = 'rw_';

$meta_boxes[] = array(
'title'  => __( 'Breaking news', '$prefix' ),
'fields' => array(
array(
'name'    => __( 'Show', 'rw' ),
'id'      => 'radio',
'pages'   => array('post-new'),
'type'    => 'radio',
// Array of 'value' => 'Label' pairs for radio options.
// Note: the 'value' is stored in meta field, not the 'Label'
'options' => array(
'YES' => __( 'Yes', '$prefix' ),
'NO' => __( 'No', '$prefix' ),
),
),
)
);

return $meta_boxes;
}

Мета-окно показывать отлично в «Добавить новый пост». Но с помощью переключателя я хочу контролировать, какие сообщения отображаются в новостной ленте. А новостная лента в теме отображается с помощью следующего кода

<?php if (!Bunyad::options()->disable_topbar_ticker): ?>
<div class="trending-ticker">
<span class="heading"><?php echo Bunyad::options()->topbar_ticker_text; // filtered html allowed for admins ?></span>

<ul>
<?php $query = new WP_Query(apply_filters('bunyad_ticker_query_args', array('orderby' => 'date', 'order' => 'desc', 'posts_per_page' => 8))); ?>

<?php while($query->have_posts()): $query->the_post(); ?>

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

<?php endwhile; ?>

<?php wp_reset_postdata(); ?>
</ul>
</div>
<?php endif; ?>

Любая помощь высоко ценится.

0

Решение

Вы должны добавить условие в цикл, где вы сравниваете rwmb_meta( 'radio' )
Проверьте документацию для более подробной информации о rwmb_meta.

Это может выглядеть так:

<?php while($query->have_posts()): $query->the_post(); ?>
<?php if( rwmb_meta( 'radio' ) == 'Yes' ): ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endif; ?>
<?php endwhile; ?>

Другой способ, возможно, лучше, это изменить WP_Query, добавив ключ и мета-значение, которое вы ищете.

<?php $query = new WP_Query(apply_filters('bunyad_ticker_query_args', array('meta_key' => 'radio', 'meta_value' => 'Yes','orderby' => 'date', 'order' => 'desc', 'posts_per_page' => 8))); ?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]