Делая шаблон для WordPress понадобилось продублировать список страниц в следующем виде:
<a href="#" target="_blank">ссылка</a> | <a href="#" target="_blank">ссылка</a> | <a href="#" target="_blank">ссылка</a> | <a href="#" target="_blank">ссылка</a>
С помощью стандартной функции wp_list_pages такой вывод списка страниц сделать не представляется возможным, так как функция возвращает ссылки на страницы в виде древовидного списка <li>…</li>. Если бы первый или последний элемент имели уникальный класс, то можно было бы с помощью CSS немного поизвращаться и сделать-таки необходимый вывод, но увы…
Ничего умного не придумав - полез в гугл… Обнаружилась только одна заметка в блоге на эту тему. Приведенная там функция некорректно работала при использовании ЧПУ. В общем немного подредактировав её - получил работающий вариант:
function niko_get_list_pages() {
global $wpdb;
$query = "SELECT * FROM ".$wpdb->posts." where (post_type ='page') and (post_status='publish') ORDER BY ID ASC LIMIT 10";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
$i = 1;
while ($row = mysql_fetch_array($result)) {
$title = $row['post_title'];
$link = get_page_link($row['ID']);
echo "<a href=\"$link\">$title</a>";
if ($i<>$num_rows) echo ' | ';
$i++;
}
}
Функция выводит в необходимом формате список ссылок на 10 страниц, отсортированные по ID (по возрастанию). Функцию довольно легко модифицируется под любой формат вывода.
Чтобы использовать её в шаблоне - добавляем код функции в файл functions.php. В нужном месте шаблона вызываем функцию niko_get_list_pages().
Комментарии
Непонятно, зачем использовать мускульные функции, когда в Вордпрессе есть уже обертка:
$results=$wpdb->get_results($query);
Да и тут можно обойтись проще, выполнив $posts=get_posts($args) (или похожая функция, не помню - можно в Кодексе посмотреть)
Вот практически тоже мамое:
<?php $allpages = get_pages('sort_column=menu_order');
foreach($allpages as $pagg):?>
<a href="<?php echo get_page_link($pagg->ID);?>/"><?php echo $pagg->post_title ?> </a>
<?php endforeach; ?>