您可以按照以下步骤执行此操作:
将自定义元框添加到帖子中创建一个函数,使用save\\u post操作保存元数据,将“meta\\u key”查询参数添加到您正在使用的任何查询中将其放在主题功能中。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;