2017-02-10 2 views
1

Было что-то, что я, похоже, не сработал. У меня есть заголовок записи, который на первой странице отображается поверх каждого элемента портфеля (при наведении).Wordpress: Move entry-title

Здесь вы можете видеть, что я имею в виду; www.untoldworks.com

Все, что я пытаюсь сделать, это переместить заголовок записи, чтобы он отображался в соответствии с категорией записи & в поле ввода слева от позиции портфеля.

Как я понимаю, макет запись мета для страницы портфеля находится в пределах шаблона-tags.php

function eris_entry_header() { 

if (!is_single() && (!is_search() && ('link' == get_post_format() || 'quote' == get_post_format()))) { 
    return; 
} 

$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="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>'; 
} 

$edit_post_link = ''; 

if (is_user_logged_in()) { 
    $edit_post_link = '<a href="' . esc_url(get_edit_post_link()) . '"></a>'; 
} 

$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(
    esc_html_x('%s', 'post date', 'eris'), 
    '<a href="' . esc_url(get_permalink()) . '" rel="bookmark">' . $time_string . '</a>' 
); 

if ('portfolio' == get_post_type()) { 
    $categories_list = get_the_term_list(get_the_ID(), 'ct_portfolio', '', '&nbsp;', ''); 
} else { 
    $categories_list = get_the_term_list(get_the_ID(), 'category', '', '&nbsp;', ''); 
} 

if (is_single()) { 
    the_title('<h1 class="entry-title">', '</h1>'); 
} else { 
    the_title('<h2 class="entry-title"><a href="' . esc_url(get_permalink()) . '" rel="bookmark">', '</a></h2>'); 
} 

printf('<div class="entry-meta"><span class="category-list">%1$s</span><span class="post-date">%2$s</span><span class="edit-link">%3$s</span></div>', $categories_list, $posted_on, $edit_post_link);} 

Было бы замечательно, если название запись будет показывать первый (так левый нижний угол портфеля пункта) после этого категория записи и после этого дата.

Надеюсь, что кто-то может это понять XD Заранее благодарим!

+0

Итак, вам нужно только указать заголовок записи с категорией и датой? –

+0

Да, это план, но я не могу понять, как .. –

ответ

0

Ответ/Final Update:

Из кода вы в курсе, мне кажется, что последняя строка соответствующая одна:

printf('<div class="entry-meta"><span class="category-list">%1$s</span><span class="post-date">%2$s</span><span class="edit-link">%3$s</span></div>', $categories_list, $posted_on, $edit_post_link);} 

Вам нужно будет добавить новый аргумент и использовать аргумент обменивать. Попробуйте заменить эту строку с этим:

// use 'get_the_title()' instead of 'the_title()' 
$my_title = get_the_title(); 

// note that I added the "$my_title" to the arguments on the end of the line 
// and also that I added "%4$s" to the printf() function to show our new title 
printf('<div class="entry-meta">%4$s<span class="category-list">%1$s</span><span class="post-date">%2$s</span><span class="edit-link">%3$s</span></div>', $categories_list, $posted_on, $edit_post_link, $my_title);} 

Вы можете найти более подробную информацию и разъяснения по поводу printf() на официальной странице старинной рукописи here.

Для лучшего взгляда Explaination в этом примере:

$city = 'New York'; 
$zipcode = '12345'; 

printf('Your city is %1$s, and your zip code is %2$s.', $city, $zipcode); 

станут:

"Ваш город является Нью-Йорк, и ваш почтовый индекс является ."


Update: (перед использованием get_the_title())

Я могу видеть в вашем исходный код, что новый элемент с названием добавляется на том месте, прямо перед входной мета- контейнера.

В исходном коде вы видите это:

<span class="post-date">Stefan Rustenburg</span> // this is our post-title 
<div class="entry-meta"> 
    <span class="post-date"></span> // this seems to be an empty element ?! 
    <span class="category-list"></span> 
    <span class="post-date"></span> 
    <span class="edit-link"></span> 
</div> 

Если изменить код следующим образом:

<div class="entry-meta"> 
    <span class="post-date">Stefan Rustenburg</span> // this is our post-title 
    <span class="post-date"></span> // this seems to be an empty element ?! 
    <span class="category-list"></span> 
    <span class="post-date"></span> 
    <span class="edit-link"></span> 
</div> 

Названное добавляются в нужное место. См: post-title on right place

ли вы создать span элемент с классом post-date себя? Как выглядит ваша функция printf()?

P.S. Возможно, также попробуйте использовать the_title() без before и after, чтобы узнать, не изменилось ли это.

Поскольку вы используете printf(), возможно, вам нужно использовать get_the_title() вместо the_title().

+0

Привет, LWS-Mo, Спасибо за ответ. Я реализовал ваш код, и это то, что я делал самостоятельно. Но странно, что название все еще печатает поверх элемента портфеля. Даже когда я применяю тот же css, что и дата или категория. См. Результат кода: [link] (http://untoldworks.com) Я не вижу какого-то css, который отвечает? –

+0

Я посмотрел с помощью инструментов разработчика и веб-сайта. Кажется, что вновь созданный элемент заголовка добавлен в неправильном месте. См. Мой обновленный ответ выше. –

+0

Странно, что новый элемент заголовка помещается вне div, потому что если вы посмотрите на функцию printf(), он должен быть внутри. 'printf ('

', $ categories_list, $ stock_on, $ edit_post_link, $ my_title);' Также попытался использовать the_title() без каких-либо других, но затем он просто не отображается. –