WordPress默认提供名为“粘性帖子”的功能。您可以通过“快速编辑”链接将任何帖子标记为粘滞。WordPress将添加一个名为sticky
所有粘帖。因此,您可以在CSS中使用该类来提供自定义样式。
另一个解决方案是在wp admin中创建自定义post meta和meta框。并为用户提供一种将任何帖子标记为“特色”的方法。然后,基于该元字段值,您可以轻松地更改post类。
查找有关的更多信息Meta Box 和Custom fields 来自WordPress Codex。如果您添加了custom field
在名为“的帖子中”featured_post
“您可以使用下面的函数更改post类。它将添加一个名为\'featured-post
\' 所有帖子都标记为特色。
add_action( \'load-post.php\', \'annframe_meta_boxes_setup\' );
add_action( \'load-post-new.php\', \'annframe_meta_boxes_setup\' );
add_action( \'save_post\', \'annframe_save_post_meta\', 10, 2 );
function annframe_meta_boxes_setup() {
add_action( \'add_meta_boxes\', \'annframe_add_meta_box\' );
}
function annframe_add_meta_box() {
add_meta_box(
\'featured_post\', // Unique ID
__( \'Featured Post\' ), // Title
\'annframe_display_meta_box\', // Callback function
\'post\', // Admin page (or post type)
\'side\', // Context
\'high\'
);
}
function annframe_display_meta_box( $post ) {
wp_nonce_field( basename( __FILE__ ), \'ann_meta_boxes_nonce\' );
?>
<label for="meta-box-checkbox"><?php _e( \'Mark as featured\'); ?></label>
<input type="checkbox" id="meta-box-checkbox" name="meta-box-checkbox" value="yes" <?php if ( get_post_meta( $post->ID, \'featured_post\', true ) == \'yes\' ) echo \' checked="checked"\'; ?>>
<?php
}
// Save meta value.
function annframe_save_post_meta( $post_id, $post ) {
/* Verify the nonce before proceeding. */
if ( !isset( $_POST[\'ann_meta_boxes_nonce\'] ) || !wp_verify_nonce( $_POST[\'ann_meta_boxes_nonce\'], basename( __FILE__ ) ) )
return $post_id;
/* Get the post type object. */
$post_type = get_post_type_object( $post->post_type );
/* Check if the current user has permission to edit the post. */
if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
return $post_id;
$meta_box_checkbox_value = \'\';
if( isset( $_POST["meta-box-checkbox"] ) ) {
$meta_box_checkbox_value = $_POST["meta-box-checkbox"];
}
update_post_meta( $post_id, "featured_post", $meta_box_checkbox_value );
}
// add class.
function annframe_featured_class( $classes ) {
global $post;
if ( get_post_meta( $post->ID, \'featured_post\' ) && get_post_meta( $post->ID, \'featured_post\', true ) == \'yes\' ) {
$classes[] = \'featured-post\';
}
return $classes;
}
add_filter( \'post_class\', \'annframe_featured_class\' );