mojwp.ru
Назад

Хаки WordPress - автоматическая нумерация статей на сайте

Опубликовано: 06.03.2012
12
980

хак wordpress нумерация статейПриветствую Вас! В данной статье я предлагаю на ознакомление небольшой код, который позволит отобразить на Вашем сайте хронологическую нумерацию статей, причем в автоматическом режиме. Т.е. теперь, когда Вы будете публиковать новую заметку, она автоматически получит порядковый номер, согласно выходу на сайте. Кроме этого, все старые записи так же будут отображать свой номер, без необходимости их повторного публикования.

Довольно удобная функция, которая будет полезна на сайтах, где есть некая статейная "хронология". Вариантов, как использовать данную "штуку", много. Вы сами должны подумать, каким образом она может пригодиться на Вашем сайте.

Ввиду того, что это "хак WordPress", поэтому по привычке открываем файл шаблон functions.php и добавляем перед закрывающим ?> (в самом конце файла) следующий код:

// старт нумерации
function numbers_post() {
    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, 'mojwp_numbers', $counts, true);
        update_post_meta($post->ID, 'mojwp_numbers', $counts);
    endforeach;
endif;
} 
add_action ( 'publish_post', 'numbers_post' );
add_action ( 'deleted_post', 'numbers_post' );
add_action ( 'edit_post', 'numbers_post' );
// конец нумерации

Здесь менять ничего не следует. Как видно из последних трех строчек кода, нумерация будет срабатывать при: добавлении статьи, удалении или редактировании.

Чтобы отобразить порядковое число на сайте, необходимо вставить следующий код в то место, где он должен находиться на сайте:

ID,'mojwp_numbers',true); ?>

Если уж речь идет о подсчете и нумерации статей, то есть смысл поставить подобное рядом с заголовком. К примеру, на своем сайте я сделал это в следующем месте:

нумерация статей автоматически

Чтобы данный блок не выделялся сильно на сайте и смотрелся гармонично, необходимо его оформить соответствующим образом в файле стилей style.css. Но это индивидуально в каждом конкретном случае, поэтому пробуйте все сделать сами. Учебник и справочник в помощь http://htmlbook.ru/samcss

Как только Вы поместите указанный выше код в соответствующие файлы и сохраните их у себя на FTP, то необходимо будет сделать одно из трех действий, чтобы счетчик начал работать:

  1. опубликовать новую статью;
  2. удалить существующую статью:
  3. обновить любую из существующих статей обычным нажатием кнопки "Обновить" в форме редактирования статьи.

На этом все. Будут вопросы - милости прошу в комментарии к статье. Не забываем ставить +1.

Автор:
Виталий
Поделиться
Похожие записи
Черкани пару строк
  • Марина Лазарева
    Опубликовано: 06.03.2012 Ответить на сообщение

    Любопытная функция, как нибудь попробую 🙂 По крайней мере ты всегда будешь знать, сколько статей уже написано 🙂

    Кстати, красивое число у этой статьи получилось: "Порядковый номер статьи: 88" 🙂

  • Sueno
    Опубликовано: 06.03.2012 Ответить на сообщение

    Виталик, это ж титаническая работа, и большой секрет я так понимаю 🙂 на самом деле функция очень хороша для тематических блогов, сайтов с уроками, да много где. СУПЕР!!!! Кстати а можно ли поставить такое на определеную рубрику а не на все статьи?

  • Николай
    Опубликовано: 14.06.2012 Ответить на сообщение

    Как раз думал про это, как-то не доглядел раньше. Нужно заделать обязательно!

  • Надежда
    Опубликовано: 13.07.2012 Ответить на сообщение

    Виталий, чтобы все оказалось по порядку, придется "обновить" каждый существующий пост?

    • Виталий
      Опубликовано: 13.07.2012 Ответить на сообщение

      любую статью просто нажмите обновить
      все остальные выстроятся сами
      данное действие будет сигналом к работе кода

      • Надежда
        Опубликовано: 14.07.2012 Ответить на сообщение

        Отлично, спасибо за быстрый ответ. В таком случае лучше подкопить статьи, при пяти статьях на блоге нумерация странновато смотрится.

  • Женя
    Опубликовано: 13.07.2012 Ответить на сообщение

    Порядковый номер обязательный если блог ведется как:каждая статья - новый урок с номером, новый день блога с номером. Видел просто такие блоги и смотрится очень симпатично.

  • Михаил
    Опубликовано: 22.02.2013 Ответить на сообщение

    О боже! Я эту функцию искал 2 дня!
    Какое счастье, что нашел именно в Вашем блоге. Спасибо большое. 🙂

  • Александр
    Опубликовано: 18.05.2015 Ответить на сообщение

    А есть вариант, чтобы номер вывести прям в заголовке?

    Например:

    87. Хаки WordPress — автоматическая нумерация статей на сайте
    88. Продолжение. Хаки WordPress — автоматическая нумерация статей на сайте
    89. и тд..

    • Виталий
      Опубликовано: 18.05.2015 Ответить на сообщение

      Вставьте код вывода нумерации перед заголовком статьи

      • Александр
        Опубликовано: 18.05.2015 Ответить на сообщение

        Окей. Спасибо

  • Alex
    Опубликовано: 29.05.2015 Ответить на сообщение

    Привет! А у меня Дагон стоит (плагин). Я попытался воспользоваться Вашим уроком - увы, не получилось...

Имя
Укажите своё имя и фамилию
E-mail
Без СПАМа, обещаем
Текст сообщения
Отправляя данную форму, вы соглашаетесь с политикой конфиденциальности и правилами нашего сайта.