В данной статье представлены примеры вывода информации на странице записи WordPress.
В качестве шаблона для вывода записи используется файл:
/wp-content/themes/название_темы/single.php
, если его нет то index.php
Далее представлен базовый шаблон. Данные поста выводятся в цикле have_posts()
, поэтому не нужно указывать $id
в функциях вывода контента.
<?php get_header(); ?>
<?php
while (have_posts()) {
the_post();
?>
Вывод контента...
<h1><?php the_title(); ?></h1>
<?php
}
?>
<?php get_footer(); ?>
Тег <img>
.
Размер изображения можно задать следующие:
thumbnail |
маленькая |
medium |
средняя |
large |
большая |
full |
оригинал |
array(100, 100) |
произвольный размер |
URL изображения.
Вывод превьюшки с ссылкой на оригинал.
<a href="<?php the_post_thumbnail_url('full'); ?>">
<?php echo the_post_thumbnail('thumbnail'); ?>
</a>
ID и данные о картинке.
Функция wp_get_attachment_image_src($id, $size)
возвращает массив данных картинки по ID.
$thumb_id = get_post_thumbnail_id();
$src = wp_get_attachment_image_src($thumb_id, 'full');
print_r($src);
Результат
Array
(
[0] => http://example.com/wp-content/uploads/image.png
[1] => 150
[2] => 111
[3] => 1
)
Плагин ACF, подробнее...
Текстовые и численные поля.
Изображения.
<?php $img = get_field('название_поля'); ?>
<img src="<?php echo $img['url']; ?>" alt="<?php echo $img['name']; ?>">
Файлы.
<?php $file = get_field('название_поля'); ?>
<a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
Повторитель полей.
Для текстовых значений
<?php while (the_repeater_field('название_родительского_поля')): ?>
<?php the_sub_field('название_поля'); ?>
<?php endwhile; ?>
Для изображений и файлов
Список ссылок.
the_category($id)
и get_the_category_list($id)
– выведут список ссылок рубрик.
Результат
<ul class="post-categories">
<li><a href="http://example.com/category/razdel-1/" rel="category tag">Раздел 1</a></li>
<li><a href="http://example.com/category/razdel-2/" rel="category tag">Раздел 2</a></li>
<li><a href="http://example.com/category/razdel-3/" rel="category tag">Раздел 3</a></li>
</ul>
get_the_category($id)
– вернет массив категорий.
Результат
Array
(
[0] => WP_Term Object
(
[term_id] => 4
[name] => Раздел 1
[slug] => razdel-1
[term_group] => 0
[term_taxonomy_id] => 4
[taxonomy] => category
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
[cat_ID] => 4
[category_count] => 1
[category_description] =>
[cat_name] => Раздел 1
[category_nicename] => razdel-1
[category_parent] => 0
)
...
)
На основе этой функции можно вывести список категорий с изображениями и текстом. Картинки к рубрикам добавляются с помощью плагина произвольных полей.
<?php
$category = get_the_category();
foreach ($category as $row) {
?>
<div class="category-item">
Картинка:
<img src="<?php echo get_field('имя_поля', $row->taxonomy . '_' . $row->cat_ID); ?>">
Ссылка и название:
<a href="<?php echo get_category_link($row->cat_ID); ?>">
<?php echo $row->name; ?>
</a>
Текст:
<?php echo $row->category_description; ?>
</div>
<?php
}
?>
Функции the_tags()
и get_the_tag_list()
выведут ссылки с тегами к которым привязана запись.
get_the_tags($id)
– возвращает массив тегов.
Array
(
[0] => WP_Term Object
(
[term_id] => 24
[name] => Тег 1
[slug] => teg-1
[term_group] => 0
[term_taxonomy_id] => 24
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
)
Следующий пример с помощью функции WP_Query()
выведет 6 последних записей из категории текущей записи с картинками.
<?php
$category = get_the_category();
$query = new WP_Query(
array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 6,
'cat' => $category[0]->cat_ID,
'post__not_in' => array(get_the_ID()),
'orderby' => 'date',
'order' => 'DESC'
)
);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
?>
<div class="post-item">
Ссылка и название записи
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
Картинка
<?php the_post_thumbnail(array(200 ,200)); ?>
Превью
<?php echo get_field('имя_поля'); ?>
</div>
<?php
}
wp_reset_postdata();
}
?>