问题描述
我想选择一个精选的帖子只是通过在编辑屏幕中选中一个复选框,并能够从特定类别检索这些精选文章?
总之我正在寻找:
-
设置特色帖子
-
循环播放特定类别的帖子 (不是所有的帖子)
任何帮助?并提前感谢:)
最佳解决方案
您可以按照以下步骤执行此操作:
-
在您的帖子中添加自定义元框
-
创建使用 save_post 操作保存元数据的函数
-
将’meta_key’ 查询参数添加到您正在使用的任何查询。
将它放在你的 functions.php 文件中:
function register_post_assets(){
add_meta_box('featured-post', __('Featured Post'), 'add_featured_meta_box', 'post', 'advanced', 'high');
}
add_action('admin_init', 'register_post_assets', 1);
function add_featured_meta_box($post){
$featured = get_post_meta($post->ID, '_featured-post', true);
echo "<label for='_featured-post'>".__('Feature this post?', 'foobar')."</label>";
echo "<input type='checkbox' name='_featured-post' id='featured-post' value='1' ".checked(1, $featured)." />";
}
function save_featured_meta($post_id){
// Do validation here for post_type, nonces, autosave, etc...
if (isset($_REQUEST['featured-post']))
update_post_meta(esc_attr($post_id, '_featured-post', esc_attr($_REQUEST['featured-post'])));
// I like using _ before my custom fields, so they are only editable within my form rather than the normal custom fields UI
}
add_action('save_post', 'save_featured_meta');
然后在您的模板文件中,使用以下主循环:
$args = array(
'meta_key' => '_featured-post', // include underscore prefix in key name
'meta_value' => 1
);
// The number of posts displayed would be determined under Settings->Reading
query_posts($args);
if(have_posts()): while(have_posts()): the_post();
// Do your bidding here
endwhile; else:
endif;
仅用于示例目的:对于自定义循环 (如果在一个页面上运行多个循环),则可以使用:
$args = array(
'posts_per_page' => 5,
'meta_key' => '_featured-post',
'meta_value' => 1
);
$featured = new WP_Query($args);
if ($featured->have_posts()): while($featured->have_posts()): $featured->the_post();
the_title();
the_content();
endwhile; else:
endif;
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。