Содержание
- ID записи
- URL текущий страницы
- Название / H1
- Текст
- Изображение
- Произвольные поля
- Рубрики / категории
- Метки / теги
- Вывод записей из той же категории
В данной статье представлены примеры вывода информации на странице записи 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(); ?>
HTML1
ID записи
<?php the_ID(); ?>
HTML
$id = get_the_ID();echo $id;
PHP2
URL текущий страницы
<?php the_permalink(); ?>
HTML
$url = get_the_permalink();echo $url;
PHP3
Название / H1
<h1><?php the_title(); ?></h1>
HTML
$h1 = get_the_title();echo $h1;
PHP4
Текст
<?php the_content(); ?>
HTML
$content = get_the_content();echo $content;
PHP5
Изображение
Тег <img>
.
<?php the_post_thumbnail('full'); ?>
HTML
$img = get_the_post_thumbnail(null, 'full');echo $img;
PHP
Размер изображения можно задать следующие:
thumbnail | маленькая |
medium | средняя |
large | большая |
full | оригинал |
array(100, 100) | произвольный размер |
URL изображения.
<?php the_post_thumbnail_url('full'); ?>
HTML
$src = get_the_post_thumbnail_url(null, 'full');echo $src;
PHP
Вывод превьюшки с ссылкой на оригинал.
<a href="<?php the_post_thumbnail_url('full'); ?>"> <?php echo the_post_thumbnail('thumbnail'); ?></a>
HTML
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);
PHP
Результат
Array( [0] => http://example.com/wp-content/uploads/image.png [1] => 150 [2] => 111 [3] => 1)
Реклама6
Произвольные поля
Плагин ACF, подробнее…
Текстовые и численные поля.
<?php the_field('название_поля'); ?>
HTML
Изображения.
<?php $img = get_field('название_поля'); ?><img src="<?php echo $img['url']; ?>" alt="<?php echo $img['name']; ?>">
HTML
Файлы.
<?php $file = get_field('название_поля'); ?><a href="<?php echo $file['url']; ?>"><?php echo $file['name']; ?></a>
HTML
Повторитель полей.
Для текстовых значений
<?php while (the_repeater_field('название_родительского_поля')): ?> <?php the_sub_field('название_поля'); ?><?php endwhile; ?>
HTML
Для изображений и файлов
<?php while (the_repeater_field('название_родительского_поля')): ?> <?php $field = get_sub_field('название_поля'); ?> <img src="<?php echo $field['url']; ?>"><?php endwhile; ?>
HTML7
Рубрики / категории
Список ссылок.
the_category($id)
и get_the_category_list($id)
– выведут список ссылок рубрик.
<?php the_category(); ?>
HTML
$category = get_the_category_list();echo $category;
PHP
Результат
<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)
– вернет массив категорий.
$category = get_the_category();print_r($category);
PHP
Результат
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}?>
HTML8
Метки / теги
Функции the_tags()
и get_the_tag_list()
выведут ссылки с тегами к которым привязана запись.
<?php the_tags('<p>Метки: ', ', ', '</p>'); ?>
HTML
echo get_the_tag_list('<p>Метки: ',', ','</p>');
PHP
get_the_tags($id)
– возвращает массив тегов.
$tags = get_the_tags();print_r($tags);
PHP
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 ))
9
Вывод записей из той же категории
Следующий пример с помощью функции 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();}?>
HTML
19.10.2018, обновлено 15.10.2019