Làm thế nào để gán một trạng thái / đánh dấu để đăng?


7

Tôi muốn đánh dấu một số bài đăng để đưa chúng vào một thanh trượt nội dung nổi bật. Với mục đích đó, tôi muốn bao gồm một hộp kiểm trên trang bài đăng mới, để nếu hộp kiểm được chọn, bài đăng được đánh dấu là đặc trưng. Sau đó tôi có thể hiển thị tất cả các bài viết được đánh dấu trong thanh trượt. Làm thế nào điều này có thể được thực hiện? Cảm ơn.


Điều này thường được thực hiện hoặc đặt các bài đăng nổi bật trong danh mục nổi bật hoặc gắn thẻ chúng với thẻ đặc trưng. Nó phụ thuộc vào chủ đề của bạn nhưng 99% thời gian là một trong những lựa chọn danh mục được gắn thẻ hoặc đặc trưng.
Hameedullah Khan

dính cũng đôi khi được sử dụng cho việc này
anu

Câu trả lời:


9

Bạn có thể tạo hộp meta của riêng mình bằng hộp kiểm và chỉ chọn các bài đăng được chọn:

Thêm mã metabox

/* Define the custom box */
add_action( 'add_meta_boxes', 'my_slider_add_custom_box' );

/* Do something with the data entered */
add_action( 'save_post', 'my_slider_save_postdata' );

/* Adds a box to the main column on the Post and Page edit screens */
function my_slider_add_custom_box() {
    add_meta_box( 
        'my_slider_sectionid',
        __( 'my slider', 'my_slider_textdomain' ),
        'my_slider_inner_custom_box',
        'post' 
    );
}

/* Prints the box content */
function my_slider_inner_custom_box() {
    global $post;
    // Use nonce for verification
    wp_nonce_field( plugin_basename( __FILE__ ), 'my_slider_noncename' );
    $saved = get_post_meta($post->ID,'my_slider_field',true);
    // The actual fields for data entry
    echo '<label for="my_slider_field">';
    _e("Check the box if you want this post to show in the slider", 'myplugin_textdomain' );
    echo '</label> ';
    echo '<input type="checkbox" id="my_slider_field" name="my_slider_field" value="yes"';
    echo  ($saved) ? 'checked': '';
    echo '/>';
}

/* When the post is saved, saves our custom data */
function my_slider_save_postdata( $post_id ) {
      // verify if this is an auto save routine. 
      // If it is our form has not been submitted, so we dont want to do anything
      if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 
          return;

      // verify this came from the our screen and with proper authorization,
      // because save_post can be triggered at other times

      if ( !wp_verify_nonce( $_POST['my_slider_noncename'], plugin_basename( __FILE__ ) ) )
          return;

      // OK, we're authenticated: we need to find and save the data
        $old = get_post_meta($post_id,'my_slider_field',true);
      if (isset($_POST['my_slider_field']) && $_POST['my_slider_field'] == "yes"){
            update_post_meta($post_id,'my_slider_field',true);
      }else{
        if (!empty($old)){
            delete_post_meta($post_id,'my_slider_field');
        }
      }
}

Truy vấn bài viết đã được kiểm tra

$args = array(
    'posts_per_page' => -1
    'meta_query' => array(
        array(
            'key' => 'my_slider_field',
            'value' => true
        )
    );
$slider_query = new WP_Query($args);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.