Я хотел бы отобразить всех агентов az, за исключением одного агента, который всегда должен появляться последним. В идеале я бы хотел, чтобы заказ выполнялся из значения настраиваемого поля dName.
Я огляделся, и мне показалось, что meta_query — это новый лучший способ сделать это, но я еще не понял этого.
Текущий код, показывающий 10 последних созданных агентов.
<?php $loop = new WP_Query( array( 'post_type' => 'agents', 'posts_per_page' => 10 ) ); ?>
Спасибо, что посмотрели.
редактировать 27.03.2011, рабочий код
<?php
$loop = new WP_Query( array(
'post_type' => 'agents',
'orderby' => 'meta_value',
'meta_key' => 'rw_dname',
'order'=>'ASC',
'meta_query' => array(
array( 'key' => 'rw_dName' )
),
'post__not_in' => array( '98' ),
'posts_per_page' => -1 ) );
$loop2 = new WP_Query( array(
'post_type' => 'agents',
'post__in' => array( '98' ) ) );?>
<?php
if($loop->have_posts() || $loop2->have_posts()) {
if($loop->have_posts()) { while($loop->have_posts()) { $loop->the_post();?>
<div class="agentContent">
<div class="agentThumbnail">
<?php
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
the_post_thumbnail();
}?>
</div>
<div class="agentInfo"> <span class="agentInfoEntry">
<?php
$meta = get_post_meta(get_the_ID(), 'rw_dname', true);
echo $meta; // if you want to show
?>
</span> </div>
</div>
<?php
} //endwhile
}
?>
<?php
if($loop2->have_posts()) { while($loop2->have_posts()) { $loop2->the_post();?>
<div class="agentContent">
<div class="agentThumbnail">
<?php
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
the_post_thumbnail();
}
?>
</div>
<div class="agentInfo"> <span class="agentInfoEntry">
<?php
$meta = get_post_meta(get_the_ID(), 'rw_dname', true);
echo $meta; // if you want to show
?>
</span> </div>
</div>
<?php
} //endwhile
}
?>
<?php
} else {
echo 'No Agents.';
}
?>
Каково значение поля dName для того, который вы хотите показать последним? Что должно случиться, что агент не находится в естественном порядке 10; Вы все еще хотите, чтобы он был включен?
значение поля dName равно «имя фамилия» без кавычек. Я хочу показать всех агентов, а не только 10, приведенный выше код просто показывает, что я сейчас использую для отображения агентов.
Агент, который отображается последним, использует символы с диакритическими знаками в своем имени?
нет, только аз и аз
Я думаю, вы пропустили обе
endif;
фигурные скобки для петель. С другой стороны: Почему вы спрашиваете 2 раза, если$loop->have_posts()
?Там две петли, смотри внимательно.
@imHavoc хорошо, сегодня вечером у меня наконец-то было время взглянуть на это, я понимаю логику происходящего, но самое близкое, что я получил до сих пор, это «никаких агентов».
и остальная часть моего комментария. Я отредактировал свой исходный вопрос с текущим кодом страниц, что привело к следующему: «Ошибка синтаксического анализа: синтаксическая ошибка, непредвиденная ‘;’ in… в строке 27″ Самое близкое, что я нашел, это «NoAgents» после комментирования всех частей loop2. Еще раз спасибо за любую помощь.
@Chuck — я пропустил закрывающую скобку в loop2. Чтобы исправить ошибку Parse, добавьте еще одну круглую скобку в конце, чтобы она выглядела так
'post__in' => array( 00 ) ) );
. Что касается того, почему циклы не работают, мне нужно будет разобраться в этом.Я только что написал это, поэтому я не проверял это, но именно так я бы заставил один пост быть в конце. В первом цикле он исключает сообщения по его идентификационному номеру, а во втором цикле он включает только сообщения по идентификационному номеру, по сути, вам нужно знать идентификатор сообщения.