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

Автор: | 24/02/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.

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

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