• 28-11-2021, 05:59:52
    #1
    Wordpress'e kısa kodlar ekledim, panelden reklam kodları eklenince $ads değişkenine tanımlanıyor ve varsa kod çalışıp kullanıldığı yere reklam ekliyor. Sıkıntı ise 1'den fazla olduğunda hepsi 1.'nin hemen ardından çalışıyor. Normalde eklendiği yerde çalışmalıydı? Nerede yanlış yaptım acaba?

    Örnek:

    Olması gereken:

    1. paragraf
    2. paragraf
    Reklam 1
    3. paragraf
    4. paragraf
    Reklam 2
    5. paragraf
    6. paragraf
    7. paragraf
    Reklam 3
    8. paragraf
    ...

    Ama olan şu:

    1. paragraf
    2. paragraf
    Reklam 1
    Reklam 2
    Reklam 3
    3. paragraf
    4. paragraf
    5. paragraf
    6. paragraf
    7. paragraf
    8. paragraf
    ...

    Fonksiyon şu şekilde:
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads1 = get_option( 'laura_ads_shortcode1', '' );
        if ( '' === $ads1 ) {
            return;
        }
        echo '<div class="ads1">';
            echo $ads1 . "\n";
        echo'</div>';
    }
    
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads2 = get_option( 'laura_ads_shortcode2', '' );
        if ( '' === $ads2 ) {
            return;
        }
        echo '<div class="ads2">';
            echo $ads2 . "\n";
        echo'</div>';
    }
    
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads3 = get_option( 'laura_ads_shortcode3', '' );
        if ( '' === $ads3 ) {
            return;
        }
        echo '<div class="ads3">';
            echo $ads3 . "\n";
        echo'</div>';
    }
    Ekran görüntüsü de şu şekilde:
  • 28-11-2021, 06:11:49
    #2
    Belli bir paragraf sonrası tanımlaması verirseniz sorun çözülür.

    10 paragraf varsa atıyorum 3 reklam görünür 4.reklam görünmez ve art arda reklam yerleşmez.
  • 28-11-2021, 06:33:40
    #3
    Peace adlı üyeden alıntı: mesajı görüntüle
    Belli bir paragraf sonrası tanımlaması verirseniz sorun çözülür.

    10 paragraf varsa atıyorum 3 reklam görünür 4.reklam görünmez ve art arda reklam yerleşmez.
    Hocam tanımlamaya gerek yok zira yazının içinde kısakodlar zaten ayrı yerlerde. Mesela 1. kısa kod 3. blok'da 2. 8'de 3. 12'de ama görünen hepsinin 1. kısakod'un eklendiği yerde çalışması.

  • 29-11-2021, 14:09:10
    #4
    Developer
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads1 = get_option( 'laura_ads_shortcode1', '' );
        if (!empty($ads1)){
            return '<div class="ads1">'.$ads1.'</div>';
        }else{
            return '';
        }
    }
     
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads2 = get_option( 'laura_ads_shortcode2', '' );
        if (!empty($ads2)){
            return '<div class="ads2">'.$ads2.'</div>';
        }else{
            return '';
        }
    }
     
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads3 = get_option( 'laura_ads_shortcode3', '' );
        if (!empty($ads3)){
            return '<div class="ads3">'.$ads3.'</div>';
        }else{
            return '';
        }
    }
  • 29-11-2021, 19:48:18
    #5
    brown adlı üyeden alıntı: mesajı görüntüle
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads1 = get_option( 'laura_ads_shortcode1', '' );
        if (!empty($ads1)){
            return '<div class="ads1">'.$ads1.'</div>';
        }else{
            return '';
        }
    }
     
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads2 = get_option( 'laura_ads_shortcode2', '' );
        if (!empty($ads2)){
            return '<div class="ads2">'.$ads2.'</div>';
        }else{
            return '';
        }
    }
     
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads3 = get_option( 'laura_ads_shortcode3', '' );
        if (!empty($ads3)){
            return '<div class="ads3">'.$ads3.'</div>';
        }else{
            return '';
        }
    }
    Harika hocam, teşekkürler.

    Return içerisinde ' kullanınca bug oluyor. Sayfada 1'den fazla reklam kodu olunca bütün reklamlar arka arkaya geliyor ama " kullanınca düzgün çalışıyor, sebebini anlamadım ama şöyle ters çevirdim: return "<div class='ads1'>" . $ads . "</div>";

    Fonksiyon içinde tanımlanan değişkenler fonksiyon dışında ve diğerinde çalışmadığı için $ads1 $ads2 $ads3 yapmak yerine hepsinde $ads kullanmayı tercih ettim.

    Birde hocam else kullanmadan yapmak daha iyi olur mu? Boş olunca zaten çalışmayacak ya boş return etmeye gerek yok gibi geldi bana. Bilmediğim bir sebebi varsa aydınlatırsanız sevinirim.

    Şöyle yaptım:
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads = get_option( 'laura_ads_shortcode1' );
        if ( !empty( $ads ) ) {
            return "<div class='ads1'>" . $ads . "</div>";
        }
    }
    
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads = get_option( 'laura_ads_shortcode2' );
        if ( !empty( $ads ) ) {
            return "<div class='ads2'>" . $ads . "</div>";
        }
    }
    
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads = get_option( 'laura_ads_shortcode3' );
        if ( !empty( $ads ) ) {
            return "<div class='ads3'>" . $ads . "</div>";
        }
    }
  • 29-11-2021, 19:54:59
    #6
    Developer
    Fonksiyon boş döner, problem olacağını sanmıyorum. @ZEON; daha detaylı cevap verebilir.
  • 29-11-2021, 20:15:10
    #7
    SkyGhostAir adlı üyeden alıntı: mesajı görüntüle
    Harika hocam, teşekkürler.

    Return içerisinde ' kullanınca bug oluyor. Sayfada 1'den fazla reklam kodu olunca bütün reklamlar arka arkaya geliyor ama " kullanınca düzgün çalışıyor, sebebini anlamadım ama şöyle ters çevirdim: return "<div class='ads1'>" . $ads . "</div>";

    Fonksiyon içinde tanımlanan değişkenler fonksiyon dışında ve diğerinde çalışmadığı için $ads1 $ads2 $ads3 yapmak yerine hepsinde $ads kullanmayı tercih ettim.

    Birde hocam else kullanmadan yapmak daha iyi olur mu? Boş olunca zaten çalışmayacak ya boş return etmeye gerek yok gibi geldi bana. Bilmediğim bir sebebi varsa aydınlatırsanız sevinirim.

    Şöyle yaptım:
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads = get_option( 'laura_ads_shortcode1' );
        if ( !empty( $ads ) ) {
            return "<div class='ads1'>" . $ads . "</div>";
        }
    }
    
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads = get_option( 'laura_ads_shortcode2' );
        if ( !empty( $ads ) ) {
            return "<div class='ads2'>" . $ads . "</div>";
        }
    }
    
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads = get_option( 'laura_ads_shortcode3' );
        if ( !empty( $ads ) ) {
            return "<div class='ads3'>" . $ads . "</div>";
        }
    }
    brown adlı üyeden alıntı: mesajı görüntüle
    Fonksiyon boş döner, problem olacağını sanmıyorum. @ZEON; daha detaylı cevap verebilir.
    Bir problem teşkil etmez;

    <?php
    
    add_shortcode('ads1', 'ads1');
    function ads1() {
        $ads = get_option( 'laura_ads_shortcode1' );
        if ( !empty( $ads ) ) return '<div class="ads1">'. $ads .'</div>';
    }
    
    add_shortcode('ads2', 'ads2');
    function ads2() {
        $ads = get_option( 'laura_ads_shortcode2' );
        if ( !empty( $ads ) ) return '<div class="ads2">'. $ads .'</div>';
    }
    
    add_shortcode('ads3', 'ads3');
    function ads3() {
        $ads = get_option( 'laura_ads_shortcode3' );
        if ( !empty( $ads ) ) return '<div class="ads3">'. $ads .'</div>';
    }
  • 29-11-2021, 21:43:31
    #8
    @brown; @ZEON; Değerli bilgilerinizi paylaştığınız için çok teşekkür ederim.