Intereting Posts
Плагин Posts2Posts и интерфейс пользователя wp подключаются программно В том числе сторонние библиотеки в плагине Почему использование тега @uses в докблоках не рекомендуется? Изменение структуры Permalink для шаблона Tag.php Как включить Google Analytics в ссылку загрузки файла? WordPress Multisite. Когда пользователь регистрируется на главном сайте, как добавить пользователя на дочерний сайт Как авторизовать пользователей после создания нового сайта (multisite)? Географический поиск с таксономической структурой Создание окна поиска слайдов в wordpress is_page_template возвращает false Альтернатива использованию функции get_avatar? Есть ли способ создать мета-поле, которое можно добавить несколько раз к сообщению динамически? Использование нескольких таксономий для сортировки пользовательских сообщений get_the_content ("more …") возвращает полный текст 503 Войти WordPress

создание кнопки случайного запроса с использованием $ _GET

Я пытаюсь сделать свой пост случайным, когда я облизываю свою кнопку с помощью $ _GET, но он просто обновляет мою страницу вместо обновления со случайным сообщением.

<a href="<?php echo $my_query; ?>?p=random"><img src="<?php bloginfo('template_directory'); ?>/images/shakeup.png" alt="" /></a> <?php if(isset($_GET['p']) && $_GET['p']=='random') {?> <?php $my_query = new WP_Query('orderby=rand'); ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> 

im получить эту ошибку сейчас "Вызов функции-члена has_posts () для не-объекта в"

Solutions Collecting From Web of "создание кнопки случайного запроса с использованием $ _GET"

Вы не можете использовать методы прямого класса have_posts() или the_post() если только вы не работаете с основным запросом. Чтобы изменить основной запрос, вы должны использовать query_posts .

Если вы хотите создать новый объект запроса, вам нужно вызвать эти методы из нового объекта запроса, как показал Rarst в его примере.

Поэтому вы должны быть …

  • Изменение основного запроса

     <?php query_posts('orderby=rand'); ?> <div id="front-video-container"> <?php if( have_posts() ) : ?> <?php while( have_posts() ) : the_post(); ?> 

ПРИМЕЧАНИЕ. Если этот запрос имеет другие цели, вам может потребоваться сохранить существующие параметры запроса, используя слияние массива или query_posts логику query_posts .

  • Или, создавая новый запрос

     <?php $my_query = new WP_Query('orderby=rand'); ?> <div id="front-video-container"> <?php if( $my_query->have_posts() ) : ?> <?php while( $my_query->have_posts() ) : $my_query->the_post(); ?> 

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

 <?php if( isset( $_GET['p'] ) && 'random' == $_GET['p'] ) { query_posts('orderby=rand'); } ?> 

Надеюсь, это поможет.

Вы используете новый объект WP_Query , но функции-обертки для основного запроса.

Пытаться:

 <?php if ($my_query->have_posts()) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>