WordPress: добавляем отображение даты поста

Автор: | 02/24/2016
 

wordpressПосле переезда на Amazon новая тема оформления не отображала дату публикации постов на главной странице:

rtfm_post_date

Неудобно самому, неудобно посетителям. Хотя сама тема мне очень нравится.

Берем в руки Google и ищем, например, по запросу «wordpress display post pub date«.

В первых результатах — попадается ссылка на WordPres Codex с описанием функции the_date(), у которой в примечании упоминается функция get_the_date().

Так как в полной версии поста — дата есть, значит — тема ее отображать умеет.

Ищем:

# grep -r get_the_date wp-content/themes/iconic-one/
wp-content/themes/iconic-one/content.php:         <?php echo get_the_date(); ?> 
wp-content/themes/iconic-one/archive.php:                                               printf( __( 'Daily Archives: %s', 'themonic' ), '<span>' . get_the_date() . '</span>' );
wp-content/themes/iconic-one/archive.php:                                               printf( __( 'Monthly Archives: %s', 'themonic' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format', 'themonic' ) ) . '</span>' );
wp-content/themes/iconic-one/archive.php:                                               printf( __( 'Yearly Archives: %s', 'themonic' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format', 'themonic' ) ) . '</span>' );
wp-content/themes/iconic-one/image.php:                                                                 esc_attr( get_the_date( 'c' ) ),
wp-content/themes/iconic-one/image.php:                                                                 esc_html( get_the_date() ),
wp-content/themes/iconic-one/functions.php:             esc_attr( get_the_date( 'c' ) ),
wp-content/themes/iconic-one/functions.php:             esc_html( get_the_date() )

Находим <div>, который отвечает за заголовки постов:

rtfm_post_date1

Ищем entry-header в файлах темы:

# grep -r entry-header wp-content/themes/iconic-one/
wp-content/themes/iconic-one/content.php:               <header class="entry-header">
wp-content/themes/iconic-one/content.php:                       </header><!-- .entry-header -->
wp-content/themes/iconic-one/index.php:                         <header class="entry-header">
wp-content/themes/iconic-one/index.php:                         <header class="entry-header">
wp-content/themes/iconic-one/image.php:                                 <header class="entry-header">
wp-content/themes/iconic-one/image.php:                                 </header><!-- .entry-header -->

Редактируем wp-content/themes/iconic-one/content.php, и находим class="entry-header":

...
<header class="entry-header">
    <?php if ( is_single() ) : ?>
        <h1 class="entry-title"><?php the_title(); ?></h1>
    <?php else : ?>
        <h2 class="entry-title">
        <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'themonic' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
        </h2>
    <?php endif; // is_single() ?>
...

Строка «<?php if ( is_single() ) : ?>» говорит сама за себя — если страница single (полная версия поста) — то отображаем дату, иначе — только заголовок.

Добавляем вызов <?php echo get_the_date(); ?> после <?php else : ?>:

...
    <h2 class="entry-title">
    <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'themonic' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
    </h2>
    <?php echo get_the_date(); ?>
<?php endif; // is_single() ?>
...

Получилось вот такое:

rtfm_post_date2

Готово.

P.S.

[:||||||:] Анекдот такой был :

«Стюардесса в салоне нового лайнера объявляет о то, что находится в самолете:
— На первой палубе — багаж, на второй — бар, на третьей — поле для гольфа, на четвертой бассейн.
И добавляет:
— А теперь, господа, пристегнитесь. Сейчас со всей этой фигней на борту мы попробуем взлететь.»