X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Wordpress, get_posts
mmkulikov
mmkulikov
Topic Starter сообщение 8.4.2015, 19:22; Ответить: mmkulikov
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 2023
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 587 раз
Репутация:   68  


Есть спецы по ВП?
Пол дня что-то туплю :pionertrava:
После вставки кода (см.под спойлером) ломается основной цикл (похоже начинает выводит тоже, что и этот
дополнительный, только с пагинацией как у основного)
Причем убирал(комментировал) почти весь код, для "поломки"
основного цикла достаточно одной "таблэтки" $posts = get_posts( $args );
Мозг закипает, ткините, если кому не лень, в чем "прокололся"?

Развернуть/Свернуть
Код
    <div id="left-sidebar">
        <h3>Афиша</h3>
        <?php
        global $post;
        $tmp_post = $post;

        $args = array( 'suppress_filters' => false, 'cat' => 24, 'posts_per_page' => 20 );
        $posts = get_posts( $args );
        foreach( $posts as $post ){
            setup_postdata($post);
            ?>
            <article id="post-<?php the_ID(); ?>" rel="<? the_permalink();?>">
                <a href="<?php the_permalink(); ?>" class="thumb-link"><?php the_post_thumbnail( array(135,100) ); ?></a>
                <div style="max-width: 330px; max-height: 100px; overflow: hidden; float: left;">
                    <h2 class="blog-title" style="width:100%; margin:4px 0px; clear: none; font-size: 16px;"><a href="<? the_permalink();?>" title="<? the_title();?>"><? the_title();?></a></h2>
                    <header class="entry-header entry-meta">
                        <?php thinkup_input_blogdate(); ?>
                    </header><!-- .entry-header -->

                    <?php the_excerpt(); ?>
                </div>

                <div style="clear: both;"></div>
            </article>
            <?php
        }
        wp_reset_postdata();
        $post = $tmp_post;
        ?>
    </div>


Есть еще один "нюанс"
Развернуть/Свернуть
function removeFromHome($query) {
if ($query->is_home() && $query->is_main_query()) {
$query->set('cat','-24');
}
}
add_filter('pre_get_posts','removeFromHome');

Если отключить этот фильтр - тогда все начинает работать предсказуемо и по "документации".


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 9.4.2015, 2:06; Ответить: andreykashops
Сообщение #2


WordPress is my Life..
******

Группа: Active User
Сообщений: 1426
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


Код
wp_reset_postdata();

замените на
Код
wp_reset_query();


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
Topic Starter сообщение 9.4.2015, 19:29; Ответить: mmkulikov
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 2023
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 587 раз
Репутация:   68  


Цитата(andreykashops @ 9.4.2015, 0:06) *
wp_reset_query();

Еще вчера пробовал - чудо не произошло :pardon:

Решение нашел
Вот рабочий код
Развернуть/Свернуть
<aside class="widget">
<h3 class="widget-title">АФИША</h3>
<div class="textwidget">
<?php
$allposttype = mp_get_all_posttype();
query_posts( array( 'cat' => '24', 'post_type'=> $allposttype, 'posts_per_page' => 10, 'ignore_sticky_posts' => 1, 'orderby' => 'post__in', 'order' => '') );
while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" rel="<? the_permalink();?>">
<a href="<?php the_permalink(); ?>" class="thumb-link"><?php the_post_thumbnail( array(135,100) ); ?></a>
<div style="max-width: 330px; max-height: 100px; overflow: hidden; float: left;">
<h2 class="blog-title" style="width:100%; margin:4px 0px; clear: none; font-size: 16px;"><a href="<? the_permalink();?>" title="<? the_title();?>"><? the_title();?></a></h2>
<header class="entry-header entry-meta">
<?php thinkup_input_blogdate(); ?>
</header><!-- .entry-header -->

<?php the_excerpt(); ?>
</div>

<div style="clear: both;"></div>
</article>
<?php endwhile; wp_reset_query(); ?>
</div>
</aside>


Но непонятка нестыковка c документацией и рекомендациями к дополнительным циклам осталась!
По-факту вышло, что если до вывода основного цикла использовать get_posts и
использовать какой-то фильтр - получаем полностью невменяемую выдачу.
А вот не рекомендованная к использованию query_posts отработала совершенно верно и адекватно!
Шайтан :hmhm: какой-то, или барабашка... Не хорошо.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 9.4.2015, 20:16; Ответить: andreykashops
Сообщение #4


WordPress is my Life..
******

Группа: Active User
Сообщений: 1426
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


mmkulikov, терзает догадка, что проблема в том, что вы используете для произвольных запросов глобальные переменные($post, $posts)... Еще вчера хотел это написать, но подумал, что функция должна их перезаписать в исходный вариант(что она по определению и должна делать).

Сообщение отредактировал andreykashops - 9.4.2015, 20:16


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
Topic Starter сообщение 10.4.2015, 12:53; Ответить: mmkulikov
Сообщение #5


Старожил
******

Группа: Active User
Сообщений: 2023
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 587 раз
Репутация:   68  


Цитата(andreykashops @ 9.4.2015, 18:16) *
глобальные переменные($post, $posts)...

Сохраняются, переименовываются ... :pardon:
Похоже дело еще и в конкретной теме (тема что-то "крутит" с пагинацией и выводом основного цикла)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Вёрстка, натяжка на WordPress, Joomla, качественно, доступно
53 WhiteIce 23724 Вчера, 19:41
автор: WhiteIce
Горячая тема (нет новых ответов) Разработка сайтов Joomla Wordpress Opencart
Разработка, верстка, оптимизация веб сайтов.
48 WoWeb 7298 Вчера, 13:37
автор: serg5777
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
11 Nell 1077 11.12.2017, 15:21
автор: Nell
Открытая тема (нет новых ответов) Как включить автоматическое обновление для плагинов WordPress и самого движка?
0 Telnor 381 10.12.2017, 13:27
автор: Telnor
Открытая тема (нет новых ответов) Адаптация сайтов под мобильные устройства, качественная кроссбраузерная верстка, работа с Wordpress
PSD to HTML, натяжка макетов на Wordpress, адаптивная верстка
28 anton_ber 5165 6.12.2017, 13:39
автор: anton_ber


 



RSS Текстовая версия Сейчас: 13.12.2017, 1:45
Дизайн