Вопрос о Wordpress, PHP и БД

devastat10n
На сайте с 29.06.2010
Offline
43
519

Здравствуйте уважаемые форумчане.

Нужна помощь спецов.

Есть тема на wordpress на ней на главной с помощью вложенных цыклов я вывожу посты по разным критериям сортировки.

Грубо говоря, получается сверху: "самые просматриваемые", под ними "новые" и в конце "по рейтингу".

И если с первыми двумя все норм, то вот третье условие пока никак.

<?php // Цикл 2  

$query2 = new WP_Query('have_posts()');
while($query2->have_posts()){ $query2->the_post(); ?>

<li>
<?php if ( has_post_thumbnail() ) { ?>
<a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>" class="post-thumbnail"><img src='<?php echo kama_thumb_src ('w=180 &h=180 &q=75'); ?>' alt='' /> </a>
<?php } ?>
<div class="tumb_link"><a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
</li>
<?php
}
wp_reset_postdata();?>

Таким запросом я вывожу последние записи. На выходе получается: картинка, а под ней название поста.

Теперь сам вопрос:

У меня есть в БД таблица "rayt_post"

В ней поля:

1. id

2. post_id

3. value

Вот мне нужно вывести посты по убыванию значения поля "value"

То есть первый пост у которого в графе value самая большая цифра и дальше вниз.

Поле "value" содержит целое число.

Заранее, благодарен!

Профессия веб-мастер (http://webmasterprof.ru)
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

$sql = "SELECT `post_id` FROM rayt_post ORDER BY `value`";

$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result))

{

$res = mysql_fetch_assos(mysql_query("SELECT * FROM `wp_posts` WHERE `post_id`='{$row['post_id']}'"));

print_r($res);

}

Не помню как точно называется поле с номером поста в таблице wp_posts/

Подпись))
IL
На сайте с 20.04.2007
Offline
435
#2
devastat10n:
То есть первый пост у которого в графе value самая большая цифра и дальше вниз.
Милованов Ю.С:
ORDER BY `value`";

Order by `value` DESC

Ну и логично LIMIT 0,10 (или сколько нужно записей - не все же?) добавить...

+ можно одним join-запросом сделать (у нас ведь индексы прописаны?)... И, возможно, имеет смысл кэшировать результат, чтоб хостер не выгонял

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
devastat10n
На сайте с 29.06.2010
Offline
43
#3

А как это вписать в мой запрос?

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

Я по 9 вывожу.

devastat10n
На сайте с 29.06.2010
Offline
43
#4

Короче самому пришлось убить 4 часа, но таки проблему решил. Может кому пригодится.

 <?php $postids = $wpdb->get_col("SELECT * FROM rayt_postORDER BY value desc", 1);  
if ($postids) {

foreach ($postids as $id) {
$post=get_post(intval($id));
setup_postdata($post);?>
<li>
<?php echo $ids ?>
<?php if ( has_post_thumbnail() ) { ?>
<a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>" class="post-thumbnail"><img src='<?php echo kama_thumb_src ('w=180 &h=180 &q=75'); ?>' alt='' /> </a>
<?php } ?>
<div class="tumb_link"><a href="<?php the_permalink(' ') ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
</li>
<?php } wp_reset_postdata(); }?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий