タームページのカスタム
-
ターム一覧ページで、最新記事1件を非表示にする方法がわかりません。
//最新記事ID取得 function get_latest_blog_id($cat_id=null) { global $wpdb; if(empty($cat_id)) { // 最新記事idの取得 $row = $wpdb->get_row("SELECT ID FROM $wpdb->posts WHERE post_type = 'posttype' AND post_status = 'publish' ORDER BY post_date DESC"); } else { // カテゴリを指定した最新記事idの取得 $cat_id = intval($cat_id); $row = $wpdb->get_row("SELECT p.ID FROM $wpdb->posts p LEFT JOIN $wpdb->term_relationships r ON p.ID=r.object_id WHERE p.post_type = 'posttype' AND p.post_status = 'publish' AND r.term_taxonomy_id = '$cat_id' ORDER BY p.post_date DESC"); } return !empty( $row ) ? $row->ID : '0'; }こちらのファンクションを使い、各タームの最新記事IDを取得可能にしていますが、
add_action('pre_get_posts','my_pre_get_posts'); function my_pre_get_posts( $query ) { if(is_admin() || ! $query -> is_main_query()) return; if ($query -> is_tax()) { $tax_slug = get_query_var('taxonomy'); $term_slug = get_query_var('term'); $term = get_term_by("slug",$term_slug,$tax_slug); $id = $term->term_id; $newBlog = get_latest_blog_id($id); $query -> set('posts_per_page', '3'); $query->set('post__not_in',array($newBlog) ); } }タームページで上記記述が効きません。
やりたいことは、現在いるタームページの最新記事1件を省いたloopです。offsetでの処理を試しましたが、ページャーがバグってしまいました。こちら可能でしたら、ご教授願います。
記述はfunctions.phpに書いています。
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
トピック「タームページのカスタム」には新たに返信することはできません。