Закреплённая запись + анонсы на главной

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

  1. the_excerpt() — выводит анонс материала, автоматически обрезая текст. Слова и предлоги вроде режет приемлемо
  2. the_content() — отдаёт материал полностью
  3. is_sticky() — возвращает логическое значение, является ли запись “приклеенной”

Собственно, это всё что нужно знать, чтобы организовать на главной странице блога WP вывод анонсов последних публикаций с ссылкой на полную версию, сохранив при этом первую постоянную запись целой.

В шаблоне loop.php (напомню, что эта тема была сделана на основе twentyten), было добавлено 1 условие:

137
138
139
140
141
142
143
144
145
146
	< ?php if ( is_archive() || is_search() || !is_sticky()) : // Only display excerpts for archives and search. ?>
			<div class="entry-summary">
				< ?php the_excerpt(); ?>
			</div><!-- .entry-summary -->
	< ?php else: ?>
			<div class="entry-content">
				< ?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;', 'twentyten' ) ); ?>
				< ?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
			</div><!-- .entry-content -->
	< ?php endif; ?>

После этого логика стала, дословно, следующая: если это не архив, не результат поиска и не закрепленная запись, то выводим только анонса. Иначе – целиком. Хотя если вы хоть капельку знаете php, вы и так всё поняли и не стали бы читать до этого места =)

Довольный результатом, я однако решил что нет предела совершенству. И можно использовать is_sticky() ещё раз — для того чтобы убрать ненужные ссылки. Ведь по сути закреплённая запись мной используется как постоянный текст в определённом месте, и не зачем её выводить на отдельной странице как пост блога.

Тут тоже все просто. Ищете блоки с кодом который не должен выводиться для закреплённой и обрамляете их в соответствующее условие.

После написания статьи заметил одну особенность функции the_excerpt() — она вырезает всю html-разметку. Возможно в скором времени, я напишу как это обходить.

Эта запись была опубликована в рубрике Доработка Wordpress'а надфилем и отмечена метками , . Добавить в закладки ссылку.

2 в ответ на Закреплённая запись + анонсы на главной:

  1. Александр пишет:

    Объясните новичку ,как туда попасть

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>