• 23-04-2015, 16:38:22
    #1
    Merhaba,
    Wordress'de bazı alanlara farklı kategorilerden yazılar çekiyorum. Bu işlemi WP_Query ile yapıyorum. Kodum şu şekilde ;

    $args = array (
          'cat' => 1,
          'numberposts' => '5',
       );
       $video_query = new WP_Query( $args );
    
       if ( $video_query->have_posts() ) {
          while ( $video_query->have_posts() ) {
             $video_query->the_post(); ?>
             <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if ( has_post_thumbnail() ) { the_post_thumbnail(array(120,120)); } else { ?> <img src="" alt="" /><?php } ?><p><?php baslik_kisalt(40); ?></p></a></li>
       <?php 
          }
       }
    Bu kod ile postları çekiyorum ancak bunu ajax fonksiyonu ile yapmak istiyorum. Birkaç yabancı sitede örnek gördüm ancak bir türlü yapamadım. Türkçe kaynak da pek yok bununla alakalı malesef. Yardımcı olursanız sevinirim.
  • 24-04-2015, 09:54:52
    #2
    Hocam kategorileri hangi şarta göre, hangi veriyle çekeceğini yazmamışsın. Normal bir ajax işlemi şu şekilde gerçekleşir;

    İlk olarak footer'a ajax adresini ekleyin, javascript ile ulaşabilmek için;

    <script type="text/javascript">
        var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
    </script>
    daha sonra javascript ile ajax isteği yapmanız gerekmekte, bunu herhangi bir event'e bağlayabilir yada doğrudan sayfa açılınca yapabilirsiniz. ben bir buton'a tıklanınca yapacağım.

    ajaxistek id'li bir buton ekledim, ona tıklayınca çalışacak
    <script>
    	jQuery('#ajaxistek').click(function(){
    		jQuery.post(ajaxurl, {
                'action': 'benim_method', // burası şart mutlaka vermelisiniz
                'indis': 'değer',
                'falan': 'filan' // istediğiniz kadar veri ekleyebilirsiniz
            }, function(cevap){
            	alert(cevap);
            });
    	});
    </script>
    functions.php'ye gelen ajax istediğini halledecek kodları ekleyin;
    //wp_ajax_ ve wp_ajax_nopriv_ den sonra javascript kısmında verdiğiniz action değerini yazmalısınız
    add_action('wp_ajax_benim_method', 'benim_ajax_methodum'); //burası sadece giriş yapmış kullanıcıları yakalar
    add_action('wp_ajax_nopriv_benim_method', 'benim_ajax_methodum'); // burasıda giriş yapmamış kullanıcıları
    /**
     * ikisinede işlem yaptırmak istiyorsan böyle kalsın
     * yoksa istemediğin kısmı sil
     */
    function benim_ajax_methodum() {
    	var_dump($_POST);
    
    	wp_die(); //fonksiyon sonunda sayfayı öldürmelisin
    }
    buton'a tıklayınca
    Alıntı
    array(3) {
    ["action"]=>
    string(12) "benim_method"
    ["indis"]=>
    string(6) "değer"
    ["falan"]=>
    string(5) "filan"
    }
    bu şekilde normal bir ajax işlemi yapabilirsiniz, belirli bir kategoriyi çekmek için: id'yi javascript ile gönderin ve $_post['id'] şeklinde alıp wp_query'e parametre olarak ekleyin.
  • 09-12-2019, 14:58:14
    #3
    Üyeliği durduruldu
    Kolay gelsin size birşey danışmak istiyorum da sorunumu şu şekilde size izah edeyim. Wordpresste 81 tane il kategorim var. İstanbul, Ankara, İzmir vs. Örneğin İstanbul kategorisine girdiğimizde İstanbul ile ilgili yazılı bilgi sayfası var. Ben bunu anasayfamda dropdownlist olacak şekilde ayarladım. Kategori başlıklarını Dropdownlisten çekebiliyorum yani 81 ili fakat sayfa yenilenmeden içeriğini çekemiyorum. Ajax ile yapmam gerekiyor. Kullanıcı dropdownlistten İstanbul'u seçtiğinde hemen aşağıya Ajax ile çekmiş olduğum div açılacak. Divin içerisinde de o kategoriye ait yazıyı çekecek şekilde ayarlamam gerekiyor. Yardımcı olursanız çok sevinirim. İyi çalışmalar