Как правильно писать код внутри темы?

привет всем,
написал кусок кода, который лезет в базу wordpress использую параметры в wp-config
код выбирает список постов в массив, выбирает рандом пост, обрабатывает контент выбирая произвольную превьюшку из поста и выводит ее с линкой на сам пост (такая себе ссылка на другие посты, только с картинкой)

но

когда код в отдельном файле – все работает, как только вставляю в файл темы – начинаются косяки – картинки выводятся, но вместо линков на разные посты выводится линк на текущий пост 🙁

есть идеи?

<?
mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) OR DIE("Cant create connection");
mysql_select_db(DB_NAME) or die(mysql_error());
$query = "select * from wp_posts";
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
$i=0;
  while ($row=mysql_fetch_array($res)) {
      $pictures[$i]=$row['post_content'];
      $name[$i]=$row['guid'];
      $i++; }

$i--;
for ($count=0; $count<6; $count++){
$random=rand(2,$i);
$link_to_post=$name[$random];

preg_match_all("/\<td\>(?:\<a href.+\>)?(.*(?:\.thumbs).*)\<\/td\>/", $pictures[$random], $matches);

$list=$matches[1];
echo "<a href=\"".$link_to_post."\">".$list[rand(0,9)]."</a>&nbsp;";

}
?>

Конечно, косяки будут. Незачем открывать еще один коннект к базе. Надо делать через $wpdb. Поиск на форуме по этому ключу даст ссылки на сотню примеров.

И зачем вынимать из базы ВСЕ посты, если нужно только 6 штук?

Конечно, косяки будут. Незачем открывать еще один коннект к базе. Надо делать через $wpdb. Поиск на форуме по этому ключу даст ссылки на сотню примеров.

И зачем вынимать из базы ВСЕ посты, если нужно только 6 штук?

1. оки, щас поищу – не знал про $wpdb

2. а как вытащить рандом 6 постов?

select * from wp_posts order by rand() limit 6

по идее так, проверяй

проверил – пашет запрос на ВП

SELECT * FROM $wpdb->posts WHERE post_type = ‘post’ AND post_status = ‘publish’ ORDER BY RAND() LIMIT 6

По-моему, это все и гораздо больше делает плагин post-thumb

Anonymous
Отправить
Ответ на: