Sadece şu satırın ekrana ne yazdırdığını söyleyebilir misiniz?
echo '<span class="licence free-bg float-right">'.the_field('lisans_durumu_sec', $r->ID ).'</span>';Eğer bu kısımdan android, windows gibi anahtar kelimeler geliyorsa fonksiyonunuzu şu şekilde düzeltin:
function CatchModule($colors){
$items = array(
'windows'=> array('title'=>'Windows', 'font'=>'windows'),
'macos' => array('title'=>'macOS', 'font'=>'apple'),
'unix' => array('title'=>'Unix', 'font'=>'linux'),
'android' => array('title'=>'Android', 'font'=>'android'),
'ios' => array('title'=>'iOS', 'font'=>'apple'),
'tvos' => array('title'=>'tvOS', 'font'=>'television'),
'tarayici' => array('title'=>'Tarayıcı', 'font'=>'chrome')
);
if(array_key_exists($colors, $items))
{
return '<span class="item">
<i class="fab fas-1p5x fa-'.$items[$colors]['font'].' m-right-5 va-mid"></i>
'.$items[$colors]['title'].'
</span>';
}
return '';
}Ve sizin satırınızda da şu şekilde kullanın:
$field_type = the_field('lisans_durumu_sec', $r->ID );
echo '<span class="licence free-bg float-right">'.CatchModule($field_type).'</span>';
Hocam öncelikle hayırlı bayramlar dilerim, çok teşekkür ederim verdiğiniz kodlar ile deneme yaparken bir hata fark ettim paylaştığım ilk kod başka bir alanın. Farklı bir kod paylaşmışım yani.
Aslında doğru kod şu olacaktı:
<?php
$lisans = get_field('lisans_durumu_sec');
if(isset($lisans)){
$goodDevices = ['ucretsiz','freemium','ucretli'];
foreach ($goodDevices as $device){
if(in_array($device,$lisans)){
$catchModulem = CatchModulem($device);
echo $catchModulem;
}
}
}
function CatchModulem($lisans){
switch($lisans){
case 'ucretsiz':
return '<span class="licence premium-bg">Ücretsiz</span>';
break;
case 'freemium':
return '<span class="licence premium-bg">Freemium</span>';
break;
case 'ucretli':
return '<span class="licence paid-bg">Ücretli</span>';
break;
default:
return "";
break;
}
}
?>
Seçiliolan işaret kutusuna göre ilgili yazdırma çıktıları: <span class="licence premium-bg">Ücretsiz</span> gibi olmakta.