prepare(" SELECT DISTINCT p.ID, p.post_title, p.post_content, m.meta_value AS position FROM $wpdb->posts p INNER JOIN $wpdb->postmeta m ON p.ID = m.post_id LEFT JOIN $wpdb->term_relationships tr ON p.ID = tr.object_id LEFT JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE p.post_type = 'post' AND m.meta_key = 'top_participation_position' AND m.meta_value != '' AND tt.term_id NOT IN ($excluded_category_ids_in) ORDER BY CAST(m.meta_value AS UNSIGNED) ASC "); */ /** $query = $wpdb->prepare(" SELECT p.ID, p.post_title, p.post_content, m.meta_value AS position FROM $wpdb->posts p INNER JOIN $wpdb->postmeta m ON p.ID = m.post_id WHERE p.post_type = 'post' AND m.meta_key = 'top_participation_position' AND m.meta_value != '' ORDER BY CAST(m.meta_value AS UNSIGNED) ASC ");*/ $excluded_category_id = 740; // Запрос для получения всех постов с непустым метаполем 'top_participation_position' $query = " SELECT DISTINCT p.ID, p.post_title, p.post_content, m.meta_value AS position FROM $wpdb->posts p INNER JOIN $wpdb->postmeta m ON p.ID = m.post_id WHERE p.post_type = 'post' AND m.meta_key = 'top_participation_position' AND m.meta_value != '' ORDER BY CAST(m.meta_value AS UNSIGNED) ASC "; $top_posts = $wpdb->get_results($query); if (!empty($top_posts)) { foreach ($top_posts as $post) { // Проверка наличия категории или подкатегории с ID 740 $terms = wp_get_post_terms($post->ID, 'category'); $exclude = false; foreach ($terms as $term) { if ($term->term_id == $excluded_category_id || $term->parent == $excluded_category_id) { $exclude = true; break; } } if (!$exclude) { $permalink = get_permalink($post->ID); $title = get_the_title($post->ID);?>