Lọc bài đăng theo phạm vi ngày, lọc sản phẩm theo phạm vi ngày trong trang web của bạn
- Bạn có phải là quản trị viên của trang web blog của bạn?
- Bạn có phải là Quản trị viên của trang web thương mại điện tử của mình không? . Sau đó, xin chào Quản trị viên, mong muốn của bạn được plugin tiện ích này phục vụ rất thông minh. Chỉ cần kích hoạt và đặt tiện ích này vào khu vực trang web mong muốn của bạn và để người xem trang web tìm kiếm bằng cách nhập phạm vi ngày từ và đến. Của bạn đây… Vui vẻ lọc 🙂
URL Video Trình diễn.
https. //www. youtube. com/watch?v=Zyjx-aeFSL4
Bạn có thể sử dụng date_query
function get_custom_booking( $query ) { if ( $query->is_main_query() && is_post_type_archive( 'booking' ) ) { $query->set('date_query', array( array( 'after' => 'December 1st, 2021', 'before' => 'January 31st, 2022', 'inclusive' => true ), )); } } add_action('pre_get_posts', 'get_custom_booking');Bạn cũng có thể sử dụng wp_query để nhận các bài đăng trong phạm vi ngày
$args = array( 'date_query' => array( array( 'after' => 'December 1st, 2021', 'before' => 'January 31st, 2022', 'inclusive' => true, ), ), ); $query = new WP_Query( $args );Cảm ơn vì đã tạo ra một plugin tuyệt vời. Cho đến nay, điều này đang hoạt động tốt với chúng tôi, tôi có một câu hỏi về việc lọc nội dung
Tôi muốn biết liệu có thể chỉ hiển thị kết quả trong 3-4 năm qua hay không. Trong trường hợp của chúng tôi, chúng tôi có nội dung từ năm 2011 nhưng lý tưởng nhất là chỉ muốn hiển thị các bài đăng từ năm 2015 trở đi. Tôi thấy có một tùy chọn để thay đổi thứ tự, nhưng có cách nào để hạn chế hơn nữa các bài đăng cũ hơn không được đưa vào truy vấn hoàn toàn không?
lý do đầu tiên là. mỗi plugin có khả năng làm chậm trang web của bạn. Nó có thể xảy ra do chức năng không cần thiết hoặc có thể do chức năng rất chậm
Lý do thứ hai. mỗi plugin có khả năng có thể có một lỗ hổng. Rất dễ tập trung vào bảo mật khi bạn tạo một đoạn mã nhỏ nhưng sẽ khó hơn nhiều khi bạn viết một plugin có chức năng lớn
Ok, nói ít hơn, hành động nhiều hơn, đó là kết quả
Và đây là mã cho tệp functions.php của bạn
class mishaDateRange{ function __construct(){ // if you do not want to remove default "by month filter", remove/comment this line add_filter( 'months_dropdown_results', '__return_empty_array' ); // include CSS/JS, in our case jQuery UI datepicker add_action( 'admin_enqueue_scripts', array( $this, 'jqueryui' ) ); // HTML of the filter add_action( 'restrict_manage_posts', array( $this, 'form' ) ); // the function that filters posts add_action( 'pre_get_posts', array( $this, 'filterquery' ) ); } /* * Add jQuery UI CSS and the datepicker script * Everything else should be already included in /wp-admin/ like jquery, jquery-ui-core etc * If you use WooCommerce, you can skip this function completely */ function jqueryui(){ wp_enqueue_style( 'jquery-ui', '//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.min.css' ); wp_enqueue_script( 'jquery-ui-datepicker' ); } /* * Two input fields with CSS/JS * If you would like to move CSS and JavaScript to the external file - welcome. */ function form(){ $from = ( isset( $_GET['mishaDateFrom'] ) && $_GET['mishaDateFrom'] ) ? $_GET['mishaDateFrom'] : ''; $to = ( isset( $_GET['mishaDateTo'] ) && $_GET['mishaDateTo'] ) ? $_GET['mishaDateTo'] : ''; echo '<style> input[name="mishaDateFrom"], input[name="mishaDateTo"]{ line-height: 28px; height: 28px; margin: 0; width:125px; } </style> <input type="text" name="mishaDateFrom" placeholder="Date From" value="' . esc_attr( $from ) . '" /> <input type="text" name="mishaDateTo" placeholder="Date To" value="' . esc_attr( $to ) . '" /> <script> jQuery( function($) { var from = $(\'input[name="mishaDateFrom"]\'), to = $(\'input[name="mishaDateTo"]\'); $( \'input[name="mishaDateFrom"], input[name="mishaDateTo"]\' ).datepicker( {dateFormat : "yy-mm-dd"} ); // by default, the dates look like this "April 3, 2017" // I decided to make it 2017-04-03 with this parameter datepicker({dateFormat : "yy-mm-dd"}); // the rest part of the script prevents from choosing incorrect date interval from.on( \'change\', function() { to.datepicker( \'option\', \'minDate\', from.val() ); }); to.on( \'change\', function() { from.datepicker( \'option\', \'maxDate\', to.val() ); }); }); </script>'; } /* * The main function that actually filters the posts */ function filterquery( $admin_query ){ global $pagenow; if ( is_admin() && $admin_query->is_main_query() // by default filter will be added to all post types, you can operate with $_GET['post_type'] to restrict it for some types && in_array( $pagenow, array( 'edit.php', 'upload.php' ) ) && ( ! empty( $_GET['mishaDateFrom'] ) || ! empty( $_GET['mishaDateTo'] ) ) ) { $admin_query->set( 'date_query', // I love date_query appeared in WordPress 3.7! array( 'after' => sanitize_text_field( $_GET['mishaDateFrom'] ), // any strtotime()-acceptable format! 'before' => sanitize_text_field( $_GET['mishaDateTo'] ), 'inclusive' => true, // include the selected days as well 'column' => 'post_date' // 'post_modified', 'post_date_gmt', 'post_modified_gmt' ) ); } return $admin_query; } } new mishaDateRange();
Thêm một ảnh chụp màn hình từ trang Thư viện phương tiện
Có một câu hỏi?
# WordPress, wp-admin
Misha Rudrastyh
Chào các bạn và chào mừng đến với trang web của tôi. Trong hơn 10 năm, tôi đã cố gắng hết sức để chia sẻ miễn phí với bạn một số hướng dẫn và mẹo tuyệt vời về WordPress