Андреич™ задавал уже вопрос о том, как пронумеровать записи по порядку. Использование ID для этого не подходит, потому что номер ID присваивается всем элементам, записываемым в базу данных, и далеко не в том порядке, в каком они появляются в блоге. Да и удаление записи из базы данных оставит дыру в нумерации, потому что единожды присвоенный номер ID уже не меняется. Чтобы пронумеровать записи, нужно использовать отдельную функцию, которая будет считать посты при выводе в цикле – при изменении количества функция будет отображать и новую нумерацию.
Чтобы было удобно использовать эту функцию в шаблоне, нужно разделить код на две части – на код функции и ее вызов. Вставьте код функции в файл functions.php используемой вами темы:
function PostNumbers() { global $wpdb; $querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' "; $pageposts = $wpdb->get_results($querystr, OBJECT); $counts = 0 ; if ($pageposts): foreach ($pageposts as $post): setup_postdata($post); $counts++; add_post_meta($post->ID, 'incr_number', $counts, true); update_post_meta($post->ID, 'incr_number', $counts); endforeach; endif; } add_action ( 'publish_post', 'PostNumbers' ); add_action ( 'deleted_post', 'PostNumbers' ); add_action ( 'edit_post', 'PostNumbers' );
Чтобы пронумеровать посты, вставьте вызов функции в цикл вывода постов:
ID,'incr_number',true); ?>
Цикла вывода можно определить примерно по такому коду:
это текст внутри цикла
Теперь при изменении количества записей будет изменяться и порядковый номер каждой записи.