Пользовательское поле WordPress вне цикла

В настоящее время у меня есть изображение баннера на сайте, которое добавляется через показанное изображение. Код ниже, который делает это работает:

if ( has_post_thumbnail() ) {
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' );
$url = $thumb['0'];

Я хотел бы изменить это, чтобы использовать вместо этого настраиваемое поле с помощью Advanced Custom Fields. Я сделал пользовательское поле с именем banner_image с типом в качестве URL-адреса изображения. Однако я не могу заставить это работать. Я пробовал следующие методы:

Способ 1

$image = get_field('banner_image', $post->ID);
$url = $image['url'];

Способ 2

$url = get_field('banner_image', $post->ID);

Способ 3

$url = get_field('banner_image');

Полный код PHP:

<?php
// Must be inside a loop.

// This is the bit i cannot get working
if(is_post(991)){
global $wp_query;
$postid = $wp_query->post->ID;
$url = get_post_meta($postid, 'banner_image1', true);
//End the bit that doesn't work
} elseif ( has_post_thumbnail() ) {
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' );
$url = $thumb['0'];
}
else {
$bg = array(
'http://domain.co.uk/wp-content/uploads/2014/07/image.jpg',
'http://domain.co.uk/wp-content/uploads/2014/07/image1.jpg',
'http://domain.co.uk/wp-content/uploads/2014/07/image2.jpg',
'http://domain.co.uk/wp-content/uploads/2014/07/image3.jpg',
'http://domain.co.uk/wp-content/uploads/2014/07/image4.jpg'
); // array of filenames

$i = rand(0, count($bg)-1); // generate random number size of the array
$url = "$bg[$i]"; // set variable equal to which random filename was chosen
}
?>

У кого-нибудь есть способ сделать это, я просто получаю пустую страницу в этом конкретном сообщении. Другие посты работают нормально, поэтому код не нарушается после elseif?

0

Решение

Если вы находитесь внутри цикла, это работает:

$image = get_field('banner_image');
<?php echo $image['url']; ?>
0

Другие решения

Попробуй это

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

https://echohelp.wordpress.com/2014/04/28/custom-field-outside-the-loop/

0

По вопросам рекламы [email protected]