Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

yazının okunma sayısına göre renk değiştirme?

merhaba arkadaşlar, sorum şöyle;

<?php
setPostViews(get_the_ID());
?>
<?php
echo getPostViews(get_the_ID());
?>


yukarıdaki kod ile bir yazının kaç kere okunduğu ekrana yazdırıyorum. Peki şöyle birşey nasıl yapılır? Nedir o.

Mesela 0-20 arası okundusu ise sarı renkte,

20-40 arası okundu ise mavi renkte,

40-60 arası okunduysa turuncu renkte,

60-80 arası okunduysa mor renkte,

80-100 arası okunduysa kırmızı renkte göstersin...

fonksiyon kodum;
//Eklentisiz Görüntülenme Sayısını Aldık
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count.' kez görüntülendi';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
//Eklentisiz Görüntülenme Sayısını Aldık


böyle birşey yapılabilir mi? herkese kolay gelsin....
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • uralozden adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 yıl önce güncellenmiş
    70 cevap - 0 soru
    çok kolay aslında yapmışsın mantığını sadece bu öğrendiğin değelere göre bir if sorgusu yapacaksın ve yazının p&#39;sine bu if&#39;e göre bir class verdireceksin bu class&#39;lara da css olarak renkleri tanımlayacaksın. örnek olarak;
    .mavi{
        color:#1a4f6f;
    }
    .sari{
        color:#FFFF00;
    }
    


    
    <?php 
          if($goster == "20"){
    
                echo "<p class='sari'>Örnek yazı</p>";
    
           }else if($goster > "20" and $goster < "40"){
    
                    echo "<p class='mavi'>Örnek yazı</p>";
    
              }
    
    
    ?>
    
    
    
    • uralozden adlı üyenin fotoğrafı uralozden
      değere atadığını varsayarak yapmıştım tabi :) o kadar da doğru cevap vermeyelim yoksa kimse öğrenmez hazır kodları çakar geçer... teşekkürler yine de
      11 yıl önce yazılmış
    • uralozden adlı üyenin fotoğrafı uralozden
      goster fonksiyonu nerde? o kodu da paylaşırsan yardımcı olabiliriz.
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      hocam goster fonksiyonu'nu yanlışlıkla yazmışım, şimdi soruyu düzenledim... yeniden bakarsanız?
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • uralozden adlı üyenin fotoğrafı uralozden
      şöyleki ilk gördüğüm problem getPostViews() sana rakam olarak dönmez sadece kere görüntülendi de yazıyor olması lazım return bu şekilde bu sadece rakam olursa if'de herhangi bir hata yapmazsan çözülecektir.
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      kaç kere görüntülediyse yazıyor, ama dediğim sorunu halledemedim..
      11 yıl önce yazılmış
    • uralozden adlı üyenin fotoğrafı uralozden
      getPostViews fonkstiyonunda "kez görüntülendi" eklediğin için return'e bu rakamsal değer olmaktan çıkıyor bu yüzden oradan sadece 1231 gibi 123 gibi bir rakam gelmedi herhangi bir harf yada özel karakter içermemeli, aşağıdaki if döngüsünün çalışmamasının nedeni de bu zaten.

      if (goster() == "20"){
          echo "asdasfas";
      }
      
      


      bu şekilde yapmaktansa ben aşağıdaki gibi yapmayı tercih ederdim bu arada;

          $sonuc = goster();
      
          if   ($sonuc == "20"){
      
          echo "asdasfda";
      
      <csharp>
      Buraya kodunuzu yazın
      </csharp>}
      
      
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      hocam kez görüntülendi yazısını silelim, sadece rakamı alalım, kez görüntülendi yazısını html olarakda ekleriz zaten. alttaki verilen kodda goster değerini getPostViews olarak değiştirirsem olur demi?

      php öğrenmeye yavaş yavaş alışıyorum. onun için sorularımı maruz görün...
      
      <?php
      
          $sonuc = getPostViews($postID);
      
          if   ($sonuc == "21"){
      
          echo "asdasfda";
      
      	}
      
      ?>
      


      böyle yapınca çalışması gerekmiyor mu?
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • uralozden adlı üyenin fotoğrafı uralozden
      sormadan öğrenemezsin zaten problem değil, evet sen aşağıdaki gibi yaparsan probem olmaz, ben oraya sadece bir fonksiyon yazdım onu değiştirebilirsin.yine de çözemezsen yaz bakalım probleme

      
          $sonuc = getPostViews();
      
          if    ($sonuc == "20"){
              echo "asdasd";
          }else if($sonuc > "20" and $sonuc < "30"){
              echo "xxx";    
          }
      
      
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      sonunda yaptım, çok çok çok Teşekkür Ediyorum... Kodum aşağıdaki gibi, doğru demi? eşitleme olmadan yapılabilir mi? birder, elseif'i devamlı tekrar ettim, onun daha kısayolu var mı? onu merak ettim :)
      <?php
      
         $sonuc = getPostViews(get_the_ID());
      
         if  ($sonuc < "20"){
          echo "";
      	
         }else if($sonuc == "75" ){
          echo "75, burda esitledik."; 
      	
         }else if($sonuc > "75" and $sonuc < "80"){
          echo "75-80 arası yazdir.";  
      
         }else if($sonuc == "80" ){
          echo "80, burda esitledik."; 	
       
         }else if($sonuc > "80" and $sonuc < "100"){
          echo "80-100 arası yazdir."; 
      	
      }
      
      ?>
      
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • uralozden adlı üyenin fotoğrafı uralozden
      eşitleme yaparsan tam seksen için geçerli ama bunu aşağıdaki gibi tek if'de yapabilirsin sunucuyu yormamış olursun böylece

      
      if($sonuc <= "80"){
         echo ("asdasfas");
        }
      
      
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      else if yerine hepsini mi? tek if içerisinde kullanabilirim? yoksa eşitleme için mi dediniz?

      <?php
      
         $sonuc = getPostViews(get_the_ID());
      
         if  ($sonuc < "20"){
          echo "";
         }if($sonuc > "87" and $sonuc < "90"){
         echo "87-90 arası yazdir."; 
        } if($sonuc > "91" and $sonuc < "94"){
         echo "91-94 arası yazdir."; 
         }if($sonuc > "95" and $sonuc < "100"){
         echo "95-100 arası yazdir.";
      	
      	
      }
      
      ?>
      


      böyle yapınca oluyo, ama 91 ila 94 arası diyoruz ya 91 ve 94 görüntülenince boş geçiyo, onu nasıl halledebiliriz?
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • uralozden adlı üyenin fotoğrafı uralozden
      evet bir yanlışlık var orda eşitleme için söylemiştim onu ben aşağıdaki gibi yapman gerekiyor.

      
      
          if ($sonuc <= "20"){
              echo "20ye eşit ve 20 den küçükse gösterir";
          }else if ($sonuc >= "21" and $sonuc <= "30"){
              echo "21'e eşit 21'den büyük ve 30 veya 30 dan küçükleri gösterir";
          }
      
      
      11 yıl önce yazılmış
    • olcay adlı üyenin fotoğrafı olcay
      <?php
      
         $sonuc = getPostViews(get_the_ID());
      
         if  ($sonuc < "97"){
          echo "";
         }if($sonuc >= "102" and $sonuc <= "105"){
         echo "102-105 arası yazdir."; 
         }if($sonuc >= "106" and $sonuc <= "110"){
         echo "106-110 arası yazdir."; 
         }if($sonuc >= "111" and $sonuc <= "120"){
         echo "111-120 arası yazdir.";
      	
      	
      }
      
      ?>
      


      ayrıca hocam, if else kullanımı ile mesela bir dosya indirticem, ama yorum atmadan indiremeyecekler, aynı mantıkla yapılır sanırım heralde...

      tamam hocam, en sonunda oldu, böyle iyi demi, normal yani... ayrıca 1 saattir benimle uğraşıyorsunuz, yardımlarınız için yeniden teşekkür ederim...
      11 yıl önce yazılmış 11 yıl önce güncellenmiş
    • uralozden adlı üyenin fotoğrafı uralozden
      aynı mantıkla yapılabilir zaten programlamanın genel mantığı 1-0 olduğu için kontroller ile ileryeceksin. Bu şekilde kodlar normal bir problem olmaz. uğraşma meselesinde de sorun yok iyi çalışmalar.
      11 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.