Как отобразить опубликованную дату вместо последнего изменения в этом конкретном фрагменте кода Wordpress - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь изменить способ отображения дат публикации в моей дочерней теме Wordpress. На данный момент указанное время является последним измененным, и я хочу, чтобы это была дата, которую я вручную установил в каждом сообщении (то есть исходная дата публикации).

Я обнаружил файл в родительской теме, который, как мне кажется, может содержать виновника кода. Я признаю, что не совсем понимаю, что делает этот код, и я пытался методом проб и ошибок заставить его работать по-другому, даже до полного его удаления, но безрезультатно. Что бы я ни делал, вывод на моей странице остается прежним. Также не было никаких сообщений об ошибках. У меня есть подозрение, что рассматриваемый файл, который я скопировал в папку дочерней темы, каким-то образом не поставлен в очередь и, таким образом, никакие изменения не отражаются. Файл называется «template-tags.php» и находится в папке с именем «inc». Я создал аналогичную папку в каталоге моей дочерней темы и скопировал туда файл для редактирования.

if ( ! function_exists( 'writings_posted_on' ) ) :
    /**
     * Prints HTML with meta information for the current post-date/time and author.
     */
    function writings_posted_on() {
        $time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
        if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
            $time_string = '<time class="updated" datetime="%3$s">%4$s</time><time class="entry-date published" datetime="%1$s">%2$s</time>';
        }

        $time_string = sprintf( $time_string,
            esc_attr( get_the_date( 'c' ) ),
            esc_html( get_the_date() ),
            esc_attr( get_the_modified_date( 'c' ) ),
            esc_html( get_the_modified_date() )
        );

        $posted_on = sprintf(
            /* translators: %s: post date. */
            esc_html_x( 'Posted on %s', 'post date', 'writings' ),
            '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
        );

        $byline = sprintf(
            /* translators: %s: post author. */
            esc_html_x( 'by %s', 'post author', 'writings' ),
            '<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>'
        );

        echo '<span class="posted-on">' . $posted_on . '</span><span class="byline"> ' . $byline . '</span>'; // WPCS: XSS OK.

    }

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

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете скопировать основную функцию в дочернюю тему и настроить ее в соответствии с вашими требованиями. Я изменил функцию, чтобы игнорировать обновленную дату в мета-посте. Вы можете попробовать следующее. Скопируйте следующий код в functions.php вашей дочерней темы и вставьте его.

function writings_posted_on() {
    $time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';

    $time_string = sprintf( $time_string,
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() )
    );

    $posted_on = sprintf(
        /* translators: %s: post date. */
        esc_html_x( 'Posted on %s', 'post date', 'writings' ),
        '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
    );

    $byline = sprintf(
        /* translators: %s: post author. */
        esc_html_x( 'by %s', 'post author', 'writings' ),
        '<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>'
    );

    echo '<span class="posted-on">' . $posted_on . '</span><span class="byline"> ' . $byline . '</span>'; // WPCS: XSS OK.

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...