
Ustalara Soru: Wordpress DB Table'dan Veri Çekme
8
●174
- 17-12-2023, 19:17:09Arkadaşlar my_post_viewed meta keyinin meta value kısmında gördüğünüz gibi rakamlar var... wordpress'te bir konunun kaç kez görüntülendiği ben bunun toplamını nasıl yazdırabilirim frontend te? Yani kaç konu olursa olsun hepsinin metavalue rakamlarını toplayarak bir çıktı vericek.

- 17-12-2023, 19:20:42
Hocam öncelikle my_post_viewed meta keyini toplamak için bir php fonksiyonu oluşturmanız lazım diye düşünüyorum sonrasında da frontend de çağırırsanız istediğiniz şey sanırım olmuş olur. - 17-12-2023, 19:21:44saolunuz üstadım ama işte onu tam olarak nasıl yazacağım konusu yok... wordpress i ve mysql yapısını bilen bir arkadaş belki bir örnek oluşturur.MainMagnet adlı üyeden alıntı: mesajı görüntüle
- 17-12-2023, 19:28:54single.php dosyasına ekleyebilirsiniz;
<?php $post_id = get_the_ID(); $viewed_values = get_post_meta($post_id, 'my_post_viewed'); $total_views = 0; foreach ($viewed_values as $viewed_value) { $total_views += intval($viewed_value); } echo 'Toplam Görüntülenme Sayısı: ' . $total_views; ?> - 17-12-2023, 19:32:51Çok saolunuz cansınız üstad. Fakat sanırım yalnış anlaşıldı ben single page te o konunun kaç kez görüntülendiğinden ziyade wp_postmeta table ında meta key my_post_viewed olan tabloların meta value lerini toplamını almak istiyorum. cahillikten bu kadar karmaşık anlatıyorum. Farklı bir sayfada aslında meta_key i my_post_viewed olan tüm satırların meta_value değerlerini çekip toplayarak yazdırmak.
emrenogay adlı üyeden alıntı: mesajı görüntüle - 17-12-2023, 19:38:09
<?php global $wpdb; $table_prefix = $wpdb->prefix; $query = $wpdb->prepare("SELECT SUM(meta_value) AS total_views FROM {$table_prefix}postmeta WHERE meta_key = 'my_post_viewed'" ); $total_views = $wpdb->get_var($query); echo 'Görüntülenme Sayısı: ' . intval($total_views); ?>Test etmedim fakat çalışıyor olması gerek. FTP kullanarak düzenlemenizi tavsiye ederim. - 17-12-2023, 19:41:37çalışıyor üstad localde editliyorum zaten hemen denedim elinize kolunuza sağlık. son bir soru çekinerek sormak istiyorum bu koda son 30 günü gösterek bir filtre eklenebilir mi? sürekli son 30 gündeki totaller gözüksün şeklinde. sanıyorum o biraz meşakatli bir durum. çok teşekkür ederim.
emrenogay adlı üyeden alıntı: mesajı görüntüle - 17-12-2023, 19:52:11Son 30 günde eklenen postların toplam görüntülenme sayısını alabiliriz;thats adlı üyeden alıntı: mesajı görüntüle
<?php global $wpdb; $table_prefix = $wpdb->prefix; $query = $wpdb->prepare( "SELECT SUM(meta_value) AS total_views FROM {$table_prefix}postmeta WHERE meta_key = 'my_post_viewed' AND post_id IN ( SELECT post_id FROM {$table_prefix}postmeta WHERE meta_key = '_post_views_timestamp' AND meta_value >= %s )", date('Y-m-d H:i:s', strtotime('-30 days')) ); $total_views = $wpdb->get_var($query); echo 'Son 30 Gün İçindeki Toplam Görüntülenme Sayısı: ' . intval($total_views); ?> - 18-12-2023, 02:16:01tum postları alıp, foreach içinde bu değeri toplayabilirsiniz. ancak kaynak tüketen bir uygulama olacaktır, ek olarak günlük/saatlik vs. cache yaparsanız faydalı olur.