Настройка Wordpress: post - дата / время для функции fiftyten_posted_on () - PullRequest
0 голосов
/ 12 февраля 2011

Привет всем. Недавно я начал настраивать новую тему wp по умолчанию, двадцать десять. Я работал над изменением способа отображения даты и времени публикации, когда я понял, что функция loop () вызывает Twentten_posted_on (); где указанная информация должна отображаться. Так что я в конце концов нашел указанную функцию внутри functions.php. Все идет нормально. Вот как это выглядит:

function twentyten_posted_on() {
printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ),
    'meta-prep meta-prep-author',
    sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date">%3$s</span></a>',
        get_permalink(),
        esc_attr( get_the_time() ),
        get_the_date()
    ),
    sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
        get_author_posts_url( get_the_author_meta( 'ID' ) ),
        sprintf( esc_attr__( 'View all posts by %s', 'twentyten' ), get_the_author() ),
        get_the_author()
    )
);

}

Единственное, что меня действительно волнует, так это то, что находится внутри <span class="entry-date">, что, к сожалению, в данном случае - это странно выглядящая комбинация символов: %3$s. Это приводит меня сюда, чтобы спросить вас, знающие ребята, как, черт возьми, я разбиваю эту единственную переменную или что бы то ни было на настоящие части «день», «месяц» и «год», чтобы у меня могло быть что-то вроде этого:

<div class="day">$dayvar</div>
<div class="month">$monthvar</div>
<div class="year">$yearvar</div>

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

Для хороших ссылок:

  • Вот статическая страница html + css: http://scninja.com
  • Вот тестовая страница, где я превращая статическое в полностью функционирующий WordPress сайт: http://test.scninja.com

Спасибо заранее G.Campos

1 Ответ

2 голосов
/ 12 февраля 2011

"% 3 $ s" - это нотация, которая используется внутри sprintf. «% 3» означает использование третьего аргумента переменной (get_the_date ()) в качестве строки ($ s).

Таким образом, вы можете разбить этот исходный интервал на три деления, изменив функцию fiftyten_posted_on следующим образом:

function twentyten_posted_on() {
printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ),
    'meta-prep meta-prep-author',
    sprintf( '<a href="%1$s" title="%2$s" rel="bookmark">
            <div class="day">%3$s</div>
            <div class="month">%4$s</div>
            <div class="year">%5$s</div>
        </a>',
        get_permalink(),
        esc_attr( get_the_time() ),
        date("d", strtotime(get_the_date())), 
        date("m", strtotime(get_the_date())), 
        date("Y", strtotime(get_the_date())), 
    ),
    sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>',
        get_author_posts_url( get_the_author_meta( 'ID' ) ),
        sprintf( esc_attr__( 'View all posts by %s', 'twentyten' ), get_the_author() ),
        get_the_author()
    )
);

Или вы можете перейти в функцию get_the_date и изменить ее, чтобы она возвращала дату в виде 3 делений.

...