ACE cho hỏi: Trong wordpress có cách nào lấy thẻ tag trong 30 ngày gần nhất không vậy ? Nếu dùng get_tags(); mà trong website quá nhiều tag thì làm chậm server ?.
Thử code này xem Code: $args = array( 'number' => 20, 'order' => DESC, 'date_query' => array( array( 'after' => '-30 days', 'column' => 'post_date', ), ), ); $tags = get_tags( $args ); foreach ( $tags as $tag ) { $tag_link = get_tag_link( $tag->term_id ); $html = "<a href='{$tag_link}' title='{$tag->name}' class='{$tag->slug}'>"; $html .= "{$tag->name}</a>"; echo $html; }
Mình thấy 2 cái này không có tác dụng gì cả 'after' => '-30 days', 'column' => 'post_date', Nhưng đổi lại vd sẽ lấy 1000 tag mới nhất chẳng hạn Chỉ cần dùng 2 dòng này là đủ $args = array( 'number' => 1000, 'order' => "DESC", );
Cái anh xmen lấy là lấy tag theo bài viết (đoán vậy) còn vì sao không ra kết quả anh dán câu lệnh sau trong index.php để xem lỗi Code: <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> Còn cái anh đây là lấy 1000 tag cuối cùng không có điều kiện gì hết
Tức thay đổi 'after' => '-30 days', thành 'after' => '-3 days', Thì tag không thay đổi gì dù bài viết mới nhất cách đây 10 ngày
Ý a là thế theo điều kiện của chủ thớt. Còn ko đúng thì thử code này bạn @longhcm nha. Code: global $wpdb; $term_ids = $wpdb->get_col(" SELECT term_id FROM $wpdb->term_taxonomy INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id=$wpdb->term_relationships.term_taxonomy_id INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= $wpdb->posts.post_date"); if(count($term_ids) > 0){ $tags = get_tags(array( 'orderby' => 'count', 'order' => 'DESC', 'number' => 28, 'include' => $term_ids, )); foreach ( (array) $tags as $tag ) { echo '<li><a href="' . get_tag_link ($tag->term_id) . '" rel="tag">' . $tag->name . '</a></li>'; } } Cái gì cũng phải thử. Chứ một phát đúng ngay thì quá ngon. --- Double Post Merged, Nov 28, 2022, Original Post Date: Nov 28, 2022 --- Em hỏi thì a trả lời. Còn kết quả sao e phải kiểm tra. A ko có thời gian test. Nhưng code thì biết tí ti thôi. Lần sau thì a xin phép ko trả lời e nha.
Mình thử tìm trong API của wordpress thì thấy tag ko order theo date (https://developer.wordpress.org/rest-api/reference/tags/) Tiếp tục kiểm tra lần nữa trong database thì type cat và tag ko có field nào là date cả, nên khả năng cao là phải dùng plugin thêm hoặc tự code.