获取自定义字段值并显示在前端wordpress
Get custom field value and display in the frontend wordpress
我目前在 smart mag 主题中工作,在主页 newsticker 中默认 post 显示所有最新消息。但我只想在 newsticker.For 中显示选定的 post 我安装了插件 '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;
}
元框在 'Add new post' 中显示良好。但是使用单选按钮我想控制哪些 post 显示在新闻行情中。并且主题中的news-ticker使用以下代码显示
<?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; ?>
非常感谢任何帮助。
您必须在比较的循环中添加条件 rwmb_meta( 'radio' )
Check documentation for more details about 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))); ?>
我目前在 smart mag 主题中工作,在主页 newsticker 中默认 post 显示所有最新消息。但我只想在 newsticker.For 中显示选定的 post 我安装了插件 '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;
}
元框在 'Add new post' 中显示良好。但是使用单选按钮我想控制哪些 post 显示在新闻行情中。并且主题中的news-ticker使用以下代码显示
<?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; ?>
非常感谢任何帮助。
您必须在比较的循环中添加条件 rwmb_meta( 'radio' )
Check documentation for more details about 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))); ?>