Intereting Posts
Удалить конечную косую черту после расширения .html Мобильное уведомление в сообщении в блоге Программирование добавления пользовательской почты Оберните ежемесячные посты в div Где разместить архив- {post-type} .php проблемы с интеграцией RSS rssery external rss Удалите ссылку на изображение, если и только если это не gif установить и обновить условия сообщения с помощью multi check from frontend Ресурс был предварительно загружен с использованием предварительной загрузки ссылок, но не использовался в течение нескольких секунд Поиск групп приятелей с запросом в URL-адресе Ошибка при импорте базы данных поиск мета-полей слишком ограничительный в pre_get_post () для пользовательского поиска Как установить стиль перед style.css где отделить footer.php Как создать тему, как я могу позволить пользователю изменять изображение за пределами содержимого пост / страницы?

query_posts () ВСЕГДА показывает что-то?

Хорошо, я использую posts_query () для отображения сообщений.

Проблема заключается, по крайней мере, в моем случае posts_query () всегда выводит что-то.

Например:

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("posts_per_page=1&paged=$paged"); global $more; $more = 0; while ( have_posts() ) : the_post(); ?> <!--- DO NOTHING ! --> <?php endwhile ?> 

Отображает исходную первую часть сообщения (и без $ more = 0 весь пост).

Почему это происходит?

Я хочу, чтобы стиль вывода самостоятельно, но я не могу, потому что, например:

 while ( have_posts() ) : the_post(); ?> <h1><?php the_title();?></h1> <h3><?php the_content( __( '') ); ?></h3> <?php endwhile ?> 

дает:

 <h1>MyTitle</h1> <h3>something something something something something</h3> <p>something something something something something</p> <!-- (wherethis line comes from? ;/) ?> 

PS.

Кроме того, я почти уверен, что разбиение на страницы не работает, и я считаю, что так должно быть? У меня около 15 сообщений для отображения, я выбрал 1, почему нет навигаторов? 🙁

Точный код:

 function posts_shortcode( $atts ) { extract( shortcode_atts( array( ), $atts ) ); query_posts("posts_per_page=1"); global $more; $more = 0; while ( have_posts() ) : the_post(); ?> <h1><?php the_title();?></h1> <h3><?php the_content( __( '') ); ?></h3> <?php endwhile; } add_shortcode('posts', 'posts_shortcode'); 

query_posts () ВСЕГДА показывает что-то?

Нет, это не по крайней мере не для меня, я пробовал код, который вы разместили внутри моей дочерней темы, и не смог воспроизвести описанную проблему.

Во-первых, я попробовал …

 while ( have_posts() ) : the_post(); ?> <!--- DO NOTHING ! --> <?php endwhile ?> 

.. и ничего не получил, поэтому я потом протестировал ..

 <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("posts_per_page=1&paged=$paged"); global $more; $more = 0; while ( have_posts() ) : the_post(); ?> <h1><?php the_title();?></h1> <h3><?php the_content( __( '') ); ?></h3> <?php endwhile ?> 

.. который производится ..

 <h1>Post title</h1> <h3><p>post content</p></h3> 

Никакого паразитного абзаца.

Если бы мне пришлось угадать проблему, я бы сказал, что на работе есть плохо закодированный фильтр или короткий код. Самый простой способ изолировать причину (как и при любом решении WP) – это отключить плагины и / или переключить тему и сузить ее, что вызовет проблему.

ОБНОВИТЬ:
Используйте новый объект WP_Query вместо query_posts и это должно устранить проблему.

 function posts_shortcode( $atts ) { extract( shortcode_atts( array( ), $atts ) ); global $more, $wp_query; $args = array( 'posts_per_page' => 1, 'paged' => get_query_var('paged') ); $q = new WP_Query; $q->query( $args ); // Backup $wp_query $backup = $wp_query; // Fill $wp_query with the custom query $wp_query = $q; // Do the loop while ( $q->have_posts() ) : $q->the_post(); $more = 0; ?> <h1><?php the_title();?></h1> <h3><?php the_content( __( '') ); ?></h3> <?php endwhile; // Output page navi wp_pagenavi(); // Restore $wp_query $wp_query = $backup; // Restores wp_query global and also resets postdata(may not be needed, but won't hurt) wp_reset_query(); } add_shortcode('posts', 'posts_shortcode'); 

То же самое происходит, если вы используете the_post() без цикла? То же самое происходит, если вы не используете пользовательский query_posts() ?

Это кажется ужасно похожим на плохо закодированный фильтр где-то в цепочке, но из этого трудно угадать местоположение.

Вы можете попробовать этот код, чтобы сбрасывать имена фильтров во время их запуска и пытаться определить, что может вызвать его:

 add_filter('all','dump_name',10,0); function dump_name() { var_dump(current_filter()); }