hbsoft 4 ارسال شده در مرداد 95 گزارش بازنشر ارسال شده در مرداد 95 (ویرایش شده) با عرض سلام و خسته نباشید دوستان من واسه پست ها یه تابع نوشتم که اونها رو قبل از نمایش چک کنه و براساس تاریخ انقضا اگه تایمش گذشته باشه دیگه نمایش نده کدها به شکل زیرن function tutsplus_load_jquery_datepicker() { wp_enqueue_script( 'jquery-ui-datepicker' ); wp_enqueue_style( 'jquery-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' ); } add_action( 'admin_enqueue_scripts', 'tutsplus_load_jquery_datepicker' ); add_action( 'add_meta_boxes', 'add_expiry_date_metabox' ); function add_expiry_date_metabox() { add_meta_box( 'expiry_date_metabox', 'تاریخ انقضا نمایش تور', 'expiry_date_metabox_callback', 'post', 'side', 'high' ); } function expiry_date_metabox_callback( $post ) { ?> <form action="" method="post"> <?php // add nonce for security wp_nonce_field( 'expiry_date_metabox_nonce', 'nonce' ); //retrieve metadata value if it exists $expiry_date = get_post_meta( $post->ID, 'expires', true ); ?> <br> <?php echo date('d-m-Y'); ?> <input type="text" class="MyDate" name="expiry_date" value=<?php echo esc_attr( $expiry_date ); ?> / > <script type="text/javascript"> jQuery(document).ready(function() { jQuery('.MyDate').datepicker({ dateFormat : 'dd-mm-yy' }); }); </script> </form> <?php } function save_expiry_date_meta( $post_id ) { // Check if the current user has permission to edit the post. */ if ( !current_user_can( 'edit_post', $post->ID ) ) return; if ( isset( $_POST['expiry_date'] ) ) { $new_expiry_date = ( $_POST['expiry_date'] ); update_post_meta( $post_id, 'expires', $new_expiry_date ); } } add_action( 'save_post', 'save_expiry_date_meta' ); function filter_expired_posts( $query ) { // doesn't affect admin screens if ( is_admin() ) return; // check for main query if ( $query->is_main_query() ) { //filter out expired posts $today = date('d-m-Y'); $metaquery = array( array( 'key' => 'expires', 'value' => $today, 'compare' => '<', 'type' => 'DATE', ) ); $query->set( 'meta_query', $metaquery ); } } add_action( 'pre_get_posts', 'filter_expired_posts' ); برنامه اجرا میشه ولی پیج هایی که من پست هارو توش نمایش میدم دیگه از کار میوفتن و دیگه برگه ها رو هم نشون نمیده لطفا راهنماییم کنین خیلی گیرم می تونم کاری بکنم که برگه ها رو نادیده بگیره با تابع زیر if(is_page()) return; ولی با این کار تمام پست ها رو نشون میده و تاریخ انقضا رو که با یه متاباکس به بخش نوشته ها اضافه کردم در نظر نمیگیره لطفا کمکم کنین ویرایش شده مرداد 95 توسط hbsoft نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .