Если отображается значение настраиваемого поля, если нет, отображается другое значение настраиваемого поля.

У меня есть управляемый Wordpress веб-сайт по адресу http://www.urbanvision.org.uk/. построил его, и все работает так, как я хочу, и я доволен результатом, так как это мой первый полностью созданный веб-сайт Wordpress.

Я застрял на запросе, который у меня был в начале недели.

У нас есть страница «Недвижимость для продажи» (http://www.urbanvision.org.uk/services/property-services/properties-for-sale/), элементы на этой странице ссылаются на загрузку планов и сведений о собственности в формате PDF. Однако теперь у нас есть ряд свойств, которые необходимо добавить для ссылки не на PDF, а на внешнюю ссылку.

Проблема, с которой я столкнулся, заключается в том, что шаблон страницы зависит от настраиваемых полей, управляемых плагином Advanced Custom Fields, поле для загрузки PDF-файла — это поле загрузки файла, которое будет принимать PDF-файл, но не URL-адрес другой страницы или сайта.

Я попытался переключить настраиваемое поле на URL-адрес, а не на экран загрузки, но не заинтересован в этом по двум причинам: 1) мне пришлось бы вернуться к другим свойствам и скопировать URL-адрес в измененное поле и 2) он становится коллегам немного сложнее обновлять.

Я также попытался ввести отдельное поле и определить, какое настраиваемое поле следует вытащить:

Если файл PDF существует в property_details, введите URL-адрес в PDF. Если URL-адрес существует в property_details_url, извлеките введенный URL-адрес.

Каждая публикация состоит из двух частей, которые должны содержать ссылку на дополнительную информацию (PDF или внешний URL-адрес). Это уменьшенное изображение и ссылка на детали просмотра.

Код, который у меня был раньше (просто ссылка на PDF):

<?php
$featuredPosts = new WP_Query();
$featuredPosts->query('showposts=20&cat=13');
while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); ?>

<div class="literaturedescription">
<a href="<?php the_field('property_details'); ?>" title="<?php the_field('property_title'); ?>">
<img src="<?php the_field('property_thumbnail'); ?>" width="220px" height="150px" alt="<?php the_field('property_title'); ?>" /></a>
<p><strong><?php the_field('property_title'); ?></strong><br /><?php the_field('property_excerpt'); ?> <span style="color:red;font-weight:bold;"><?php the_field('property_status'); ?></span>

<br /><a href="<?php the_field('property_details'); ?>" target="_blank" title="<?php the_field('property_title'); ?>">&gt; &gt; View Details</a></p><br />

Код, на который я его изменил (до сих пор не могу заставить его работать):

    <?php $featuredPosts = new WP_Query(); 
$featuredPosts->query('showposts=20&cat=12');
while ($featuredPosts->have_posts()) : $featuredPosts->the_post(); ?>

<div class="literaturedescription">
<a href="<?php the_field('property_details'); ?>" title="<?php the_field('property_title'); ?>">
<img src="<?php the_field('property_thumbnail'); ?>" width="220px" height="150px" alt="<?php the_field('property_title'); ?>" /></a>
<p><strong><?php the_field('property_title'); ?></strong><br /><?php the_field('property_excerpt'); ?> <span style="color:red;font-weight:bold;"><?php the_field('property_status'); ?></span>


<?php if(get_field('property_details_url')){ ?>

<br /><a href="<?php the_field('property_details_url'); ?>" target="_blank" title="<?php the_field('property_title'); ?>">&gt; &gt; View Details</a></p><br />

<?php } else { ?>

<br /><a href="<?php the_field('property_details'); ?>" target="_blank" title="<?php the_field('property_title'); ?>">&gt; &gt; View Details</a></p><br />

<?php } ?>

Я также посмотрел на извлечение непосредственно из базы данных MySQL, которую использует Wordpress, но действительно изо всех сил пытался заставить страницу отображаться без ошибок.

Как всегда, любая помощь будет принята с благодарностью.


person Ben    schedule 23.06.2012    source источник


Ответы (1)


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

ie:

<?php
$prop_det_url = get_field('property_details_url');
if($prop_det_url!=''){ ?>

<br /><a href="<?php echo $prop_det_url; ?>" target="_blank" title="<?php the_field('property_title'); ?>">&gt; &gt; View Details</a></p><br />

<?php } else { ?>

<br /><a href="<?php the_field('property_details'); ?>" target="_blank" title="<?php the_field('property_title'); ?>">&gt; &gt; View Details</a></p><br />

<?php } ?>

надеюсь, проверка должна определить, что в property_details_url есть что-то кроме ничего, она покажет ссылку, если нет, то покажет другой фрагмент кода?

Марти

person Marty    schedule 23.06.2012