2013-12-10 2 views
0

Так им с помощью Wordpress дополнительных пользовательских полей, outpit это:Wordpress PHP - заменить строку со строкой

<?php the_field('output'); ?> 

Выхода чистого текста, это может быть: один, два или три. Мне нужно заменить выходной текст на изображение.

Я пробовал этот пример: if string..., но он не работает для меня. Я также попробовал пример swithc в нижней части этой ссылки, но все еще не работал. В Probobly couse они используют литровую битовую разницу. Кто-нибудь может мне помочь?

ответ

4

Вам нужно использовать get_field(), а не the_field().

Согласно связанном вопрос:

$items = array(
    "one" => "one.png", 
    "two" => "two.png", 
    "three" => "three.png" 
); 


<img src="<?php echo $items[ get_field('output') ]; ?>" /> 
+0

рабочий, THX !!!! – Dreadlord

-2

Из того, что я понимаю, о WordPress, такие функции, как the_title() и the_content() просто повторяют содержание непосредственно, но, как правило, имеют соответствующую get_the_* функцию, которая возвращает значение вместо этого. the_field() имеет get_field(). Таким образом, вы можете захватить его в переменной и использовать его в switch заявлении:

<?php 
$output = get_field('output'); 

switch ($output) { 
    case 'one': 
     // first image 
    break; 
    case 'two': 
     // second image 
    break; 
    case 'three': 
     // third image 
    break; 
} 
0

Я не использую Advanced пользовательских полей, но если он не имеет эквивалентную get функции the_field() (что удивило бы меня), то вы можете использовать следующий метод (очевидно, заполнение в атрибутах src и alt по мере необходимости).

<?php 
ob_start(); 
the_field('output'); 
$result = ob_get_clean(); 

switch($result) : 

    case 'one' : 
     echo '<img src="" alt="" />'; 
     break; 
    case 'two' : 
     echo '<img src="" alt="" />'; 
     break; 
    case 'three' : 
     echo '<img src="" alt="" />'; 
     break; 

endswitch; 
?> 
Смежные вопросы