Заметка №1: Нумерация страниц в определенной рубрике

На своем сайте joid.ru я жутко захотел присвоить каждой записи порядковый номер и вывести его, мне кажется так удобнее искать заметки если не помнишь заголовка. Сложность состояла в том что стандартный скрипт который есть в инете нумерует все записи, а я хотел только в определенной рубрике, так как в других рубриках находится контент не относящийся к заметкам, соответственно нумерация была бы не относительна количеству. Изменив запрос к базе данных вот что получилось, этот код нужно вставить в functions.php:

function updateNumbers() {
global $wpdb;
$querystr = "
SELECT $wpdb->posts.*, tp2.*, tp3.*
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships tp2 ON ( $wpdb->posts.ID = tp2.object_id )
LEFT JOIN $wpdb->postmeta tp3 ON ( $wpdb->posts.ID = tp3.post_id )
WHERE $wpdb->posts.post_status = 'publish' AND tp2.term_taxonomy_id = (здесь ID рубрики в которой нумеруются записи) AND tp3.meta_key = '_edit_last'";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'post_number_cat', $counts, true);
update_post_meta($post->ID, 'post_number_cat', $counts);
endforeach;
endif;
}

Этот код будет выводить номер записи, его нужно вставить в page.php

<?php echo get_post_meta($post->ID,'post_number_cat',true); ?>

Всего ( 1 комментарий )
  • Elizase

    При переносе существующих данных в базу данных в них уже может существовать поле, которое можно использовать как первичный ключ. Часто в роли первичного ключа таблицы выступает уникальный идентификационный номер, например порядковый или инвентарный номер или код. Например, в таблице «Клиенты» для каждого клиента может быть указан уникальный код клиента. Поле кода клиента является первичным ключом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *