Записи с тегом "get_post_meta()"

Произвольное поле за пределами цикла

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

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

Первый вариант

  1. В файле single.php найти код начала цикла:

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    

    и сразу после него добавить такой код:

    <?php $GLOBALS['current_id'] = $post->ID; ?>
    

    В результате этого ID (идентификатор) поста станет доступным за пределами цикла (идентификатор нужен нам для считывания произвольного поля).

  2. Теперь, чтобы получить произвольное поле текущего поста за пределами цикла, необходимо использовать следующий код:

    <?php echo get_post_meta($GLOBALS['current_id'], 'customField', true); ?>
    

    Здесь customField – это имя произвольного поля.

Второй вариант

Этот вариант более простой и красивый по сравнению с первым. Достаточно вставить вот такой код в нужное место:

<?php
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'customField', true);
?>

customField – это имя произвольного поля.

Комментариев: 3
(голосов: 4, средняя оценка: 5.00 из 5)
Loading ... Loading ...

Вывести изображение за пределами текста поста

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

  1. изображение к посту;
  2. заголовок поста;
  3. текст поста.

При таком раскладе, если изображение вставить в текст поста, то не получится вышеуказанная структура.

В таком случае на помощь приходят произвольные поля. Допустим, создали поле с названием image, в значении которого у каждого поста будем указывать полную ссылку на соответствующее изображение.

Чтобы вывести это изображение, в надлежащем месте шаблона используем следующий код:

<?php $image = get_post_meta($post->ID, 'image', true); ?>
<?php if ($image) { ?><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" class="image" /><?php } ?>

Что мы сделали?

Первой строкой мы считываем дополнительное поле image, передавая его в переменную $image. А второй строкой выводим это изображение, при условии, что это изображение было задано у поста.

—–
Работы, осуществляемые специализированной компанией “Стройтехсервис” – ремонт квартир, офисов, домов и магазинов от косметического до евроремонта, индивидуальные дизайн-проекты. Все работы выполняются оперативно и качественно.

Комментариев: 2
(голосов: 3, средняя оценка: 5.00 из 5)
Loading ... Loading ...