truser adlı üyeden alıntı: mesajı görüntüle
Selamlar,

Parametre olarak dizi belirtmek yerine metin belirttiğiniz için böyle bir hata alıyorsunuz, $lisans değişkenin türü muhtemelen dizi değil, kontrol edebilir misiniz?
Merhabalar hocam öncelikle hayırlı bayramlar dilerim.
Peki bu kodu dizi değil değer olarak revize etmenin bir ihtimali var mıdır?

Dizi olarak atadığım zaman haklısınız sorunun çözüldüğünü görüyorum.

Fakat single.php dosyasının başka bir kısmında yine aynıkodu uygulayarak çıktı aldığımda dizi şeklinde değil değer olarak çıktı almam gerekiyor fakat öyle olmuyor.
Daha net anlamanız için şu şekilde ifade edeyim:

<?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;
}
}
 
?>
Kodunu uyguladığımız zaman ve dizi şeklinde işaretlediğim zaman sorunsuz bir şekilde "Ücretsiz, Ücretli veya Freemium şeklinde çıktı alıyorum bu kısımda.

Fakat başka bir alanda "benzer yazılar" kısmında da bu çıktıyı almam için şu şekilde bir kodum mevcut:

<?php
global $related;
$rel = $related->show( get_the_ID(), true );
 
// Display the title and excerpt of each related post
if( is_array( $rel ) && count( $rel ) > 0 ) {
foreach ( $rel as $r ) {
if ( is_object( $r ) ) {
if ($r->post_status != 'trash') {
setup_postdata( $r );
echo '<div class="box-row">';
echo '<div class="icon-wrapper"><a href="'.get_permalink( $r->ID ).'"><img src="'.get_the_post_thumbnail_url( $r->ID ).'" width="80" alt="'. get_the_post_thumbnail_caption( $r->ID ) .'"></a></div>';
echo '<div class="text">';
echo '<span class="licence free-bg float-right">'.the_field('lisans_durumu_sec', $r->ID ).'</span>';
echo '<h3 class="title" id="'.get_the_title( $r->ID ).'"><a href="'.the_permalink( $r->ID ).'">'.get_the_title( $r->ID ).'</a></h3>';
echo '<p>'.the_excerpt().'</p>';
echo '<div class="action"><a class="more-info float-right button-new" href="'.get_permalink( $r->ID ).'">Detayları Göster</a>';
if(function_exists('the_ratings')) { echo the_ratings(); };
echo '<div class="clear"></div>';
echo '</div>';
echo '</div>';
echo '<div class="clear"></div>';
echo '</div>';
}
}
}
wp_reset_postdata();
}
?>
Bu kodun 14. satırındaki:

echo '<span class="licence free-bg float-right">'.the_field('lisans_durumu_sec', $r->ID ).'</span>';
İfadesi sayesinde yine çıktı alabiliyorum. Fakat burada çıktı "Ücretli", "Ücretsiz", "Freemium" gibi değilde atadığım diziler ile birlikte çıkıyor.
Yani şu şekilde: "ucretli, Ücretli", "ucretsiz, Ücretsiz" veya "freemium, Freemium" şeklinde.

Benim bu alanda da sadece değer olarak bir çıktı almam gerekiyor sadece: "Ücretsiz" gibi.

Bu işlemi sağlayabileceğim bir yol mevcut mudur?

Functions dosyamda yer alan eklenti kodu ise şu şekilde:

if( function_exists('acf_add_local_field_group') ):

acf_add_local_field_group(array(
    'key' => 'group_5d3def59aab3a',
    'title' => 'Lisans Seç',
    'fields' => array(
        array(
            'key' => 'field_5d3def83a9828',
            'label' => 'Lisans Durumu Seç',
            'name' => 'lisans_durumu_sec',
            'type' => 'radio',
            'instructions' => '',
            'required' => 1,
            'conditional_logic' => 0,
            'wrapper' => array(
                'width' => '',
                'class' => '',
                'id' => '',
            ),
            'choices' => array(
                'ucretli' => 'Ücretli',
                'ucretsiz' => 'Ücretsiz',
                'freemium' => 'Freemium',
            ),
            'allow_null' => 0,
            'other_choice' => 0,
            'default_value' => '',
            'layout' => 'vertical',
            'return_format' => 'array',
            'save_other_choice' => 0,
        ),
    ),
    'location' => array(
        array(
            array(
                'param' => 'post_type',
                'operator' => '==',
                'value' => 'post',
            ),
        ),
    ),
    'menu_order' => 0,
    'position' => 'side',
    'style' => 'default',
    'label_placement' => 'top',
    'instruction_placement' => 'label',
    'hide_on_screen' => '',
    'active' => true,
    'description' => '',
));