Intereting Posts
Несколько категорий в Catlist с использованием функции имени Перевести current_time Как создать автоматическое выпадающее меню с моими тегами? Удалите последние символы X настраиваемого значения поля Получить идентификатор страницы за пределами цикла, соответствующий идентификатор меню Добавить содержимое поля колонки и acf для cpt Форма контакта WordPress 7 Проверка размера изображения Какова наилучшая практика для размещения php внутри виджетов? Как изменить тему «Двадцать десять», чтобы удалить окно комментариев, когда страница использует определенный шаблон? Где кеш контента используется при использовании apply_filters ('the_content …? Название, как страница не работает в Twenty Eleven Как включить настраиваемые поля, которые отключены по темам? Внутренняя ошибка сервера только для интерфейсов и определенных страниц администрирования Как найти форум поддержки плагина wordpress? Сообщений в день

Как я могу исключить конкретный идентификатор из этой строки кода?

Я использую этот код для перечисления страниц с конкретным письмом в начале их:

$first_char = 'H'; echo '<table class="alphabet" style="border:0px;border-color:transparent;"> <tbody><tr> <td width="100px;" style="border-color:transparent;"><span class="separator-line"></span></td> <td style="border-color:transparent;padding-left:5px;padding-right:5px;"><span class="letter"><strong>' . $first_char . '</strong></span></td> <td width="100px;" style="border-color:transparent;"><span class="separator-line"></span></td> </tr> </tbody></table>'; $postids=$wpdb->get_col($wpdb->prepare(" SELECT ID FROM $wpdb->posts WHERE SUBSTR($wpdb->posts.post_title,1,1) = %s ORDER BY $wpdb->posts.post_title",$first_char)); if ($postids) { $args=array( 'post__in' => $postids, 'post_type' => 'page', 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1., ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts()) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> <?php endwhile; } wp_reset_query(); // Restore global post data stomped by the_post(). } 

В основном мне нужно уметь исключать из него определенные идентификаторы. Я попытался добавить 'exclude' => '// id' в массив $ args, но ничего не сделал.

Solutions Collecting From Web of "Как я могу исключить конкретный идентификатор из этой строки кода?"

В отдельной заметке 'caller_get_posts' устарел в версии 3.1 – вместо этого используйте 'ignore_sticky_posts' с логическим аргументом.

'exclude' не является аргументом запроса, поэтому WordPress игнорирует его. Сообщение об исключении через запрос выполняется с использованием ключа 'post__not_in' с единственным идентификатором сообщения или массивом идентификаторов. Однако, как указывает @vancoder, аргумент выдает дорогостоящие запросы с вычислительной точки зрения.

Также нецелесообразно применять аргумент 'post__in' а также аргумент 'post__not_in' поскольку установка неявно описывает значение другого. Более простое и эффективное решение доступно, когда вы захотите использовать оба: просто исключите идентификаторы сообщений из аргумента 'post__in' прежде чем применять его к запросу:

 $included_post_ids = $wpdb->get_col( /* ... */ ); $excluded_post_ids = [ /* ids to exclude */ ]; if( !empty( $included_post_ids ) ) { $included_post_ids = array_diff( $included_post_ids, $excluded_post_ids ); $args = [ 'post__in' => $included_post_ids, 'post_type' => 'page', 'post_status' => 'publish', 'posts_per_page' => -1, 'ignore_sticky_posts' => true ]; $my_query = new WP_Query( $args ); // .... } 

Информацию о аргументах запроса можно найти в ссылке WP_Query в Codex .