привет всем,
написал кусок кода, который лезет в базу 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> ";
}
?>
Конечно, косяки будут. Незачем открывать еще один коннект к базе. Надо делать через $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