Мой сайт о WordPress и PHP
 
15 сентября 2006

Выпуск 13. Дата и время. Разбивка страницы. Навигация

Читали 4392 раза
Рубрика: E-mail рассылка
Навигация: Главная » WordPress » E-mail рассылка

Настройка отображения даты и времени

Очень часто возникает потребность вывести в своем блоге дату и время в другом виде, нежели это предусмотрено в админ-панели или указано в шаблоне. Для этого WordPress предоставляет функцию:

the_time('формат вывода');

В качестве аргумента эта функция принимает аргументы PHP-функции date(). Посмотреть их полный список можно например на сайте http://www.codenet.ru/. Я же приведу лишь некоторые и дам готовый пример.

  • F - название месяца
  • j - день месяца без нулей (1-31)
  • Y - год (4 цифры)
  • l - название дня недели
  • H - часы, 24-часовой формат (00-23)
  • i - минуты

Пример:

the_time('F, j-го Y г., l в H:i')

Получится: "Сентябрь, 12-го 2006 г., Вторник в 23:23".

Как правило шаблон вывода даты указывают прямо в WordPress-шаблоне. Но, поскольку это англоязычные разработки, то указывается и символ "S", который является суффиксом "th" или "nd". Если он вам не нужен, то просто уберите его.

Если же вы хотите использовать один формат даты на всем блоге, то будет проще сделать это один раз в админ-панели ("Настройки"). После этого вызывайте the_time вообще без аргументов.

Где используется the_time()?

Откройте файл index.php и в блоке вывода записей вы увидите эту функцию. Поправьте её по своему усмотрению.

Деление страницы на части

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

<!--nextpage-->

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

<?php wp_link_pages(); ?>

Она добавляется (обычно) в файле шаблона после блока the_content.

Аналог except (короткий анонс)

Поле "Анонс" используется для того, чтобы отобразить его на главной странице, а уже при переходе на саму запись отображается всё, кроме этого анонса. Вы уже знаете про код

<!--more-->

который разбивает запись на две части, где первая отображается только на главной странице. Это не совсем тоже, что и "Анонс", поскольку при просмотре записи показываются обе части. Чтобы показывать первую часть только на главной странице нужно сразу после more добавить код:

<!--noteaser-->

Что делать если выводятся только полные записи?

Очень часто встречаются шаблоны, которые выводят полный текст записи, даже если вы заполнили поле "Анонс". Это происходит из-за того, что вывод текста анонса и основного текста записи производится двумя разными функциями. Разработчики шаблонов по какой-то причине исключают проверку на существование анонса и тем самым делают его лишенным смысла. Поэтому я покажу, как можно исправить сей недостаток.

Откройте файл index.php. Текст записи выводится примерно так:

<?php the_content('Далее...'); ?>

Изменяем таким образом:

<?php
if ($post->post_excerpt != "") { the_excerpt(); ?>
<p class="info"><a href="<?php the_permalink() ?>" class="more">Далее...</a>
<?php }
else { the_content('Далее...'); }
?>

Рассмотрим поподробней. Если переменная $post->post_excerpt не равна пустой строке, то выполняется функция the_excerpt(), то есть выводится текст анонса и ссылка на полную запись. Если же эта переменная пустая, то выполняется the_content(), то есть выводится основной текст записи.

Навигация по записям

Чаще всего преход между записями делают с помощью функции posts_nav_link(). Это как раз вывод "Next" и "Prev". Но, можно использовать более информативные ссылки с указаванием названия предыдущего/следующего поста. В этом нам помогут функции next_post и previous_post. Например так:

<?php previous_post('Раньше: %', ''); ?>
<br />
<?php next_post('Позже: %', ''); ?>

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

Отображение заголовка вне цикла while(have_posts())

Если вам нужно отобразить заголовок текущей записи вне цикла её вывода, то используйте функцию single_post_title.

<p><?php single_post_title('Текущая запись: '); ?>

С помощью предыдущих примеров и этой функции вы сможете организовать навигацию вида "до - здесь - дальше".

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

7 комментариев к “Выпуск 13. Дата и время. Разбивка страницы. Навигация”

  1. sonika:

    Для вывода даты у меня стоит этот плагин Russian Datetimes. Очень удобно.

  2. Максим:

    Идея хорошая, но плагин не работает :( ...

  3. Amigo:

    Максим, спасибо за статью!
    Остался один вопрос - какой тег использовать, чтобы в RSS-ленте были не обрезанные записи? Я использую more и обрезает.

    Заранее спасибо!

  4. Максим:

    Так и задумано. Я не разбирался с этим вопросом, но думаю, что именить можно только путем правки файлов WordPress.

  5. Shiko (Максим):

    "Деление страницы на части
    Если ы публикуете большие по объему записи, то всегда можете их разделить на части. Делается это очень просто с помощью кода:
    !--nextpage--"

    А как можно сделать принудительно/автоматически чтоб делил текст, например по количеству символов.

  6. Максим:

    Может есть какой-то плагин, хотя не уверен...

  7. Дмитрий:

    Спасибо за полезную инфу про деление страниц. Очень пригодилось. Но действительно, есть ли подобный плагин, может кто знает?


Оставьте комментарий! (Вы согласны с правилами)

 

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

При добавлении кода (html, php) заменяйте < на &lt; и > на &gt;.
Внимание: антиспам - зверь! Копируйте своё сообщение перед отправкой. На всякий случай.