• 27-08-2022, 21:42:43
    #1
    Muhasebeci (.org) adlı sitemde, temaya ekli olan blog api aracılığıyla,muhasebeci blog kısmının altına blogları çekebilen bir bot mevcut. Daha önce bu botu diğer sitem olan musavirlik(.net)in bloglarını çekmek için sorunsuzca kullanıyordum. Fakat şu anda aynı ayarlarda olmasına rağmen çalışmıyor. Başka hangi site olursa olsun onun bloglarını çekiyor (örn. btchaber.com). Fakat kendi sitem olan ve bloglarını kullanmak istediğim musavirlik (.net) sitesinin çekmiyor.

    Uzun süredir uğraşıyorum fakat bir türlü çözümünü bulamadım. Musavirlik(.net) sitesinin eklentilerini devre dışı bıraktım denedim. Httaccess temizledim denedim. İki sitenin de önbelleklerini temizledim denedim.
    Hosting kaynaklı mı diye hosting firmasına sordum;
    PHP Warning: Invalid argument supplied for foreach() in /home/....../......on line 35 bu dosyadaki kod yapısı nedeni ile hata vermektedir şeklinde dönüş yaptı.

    Kısacası hiçbir çözümünü bulamadım. Ama enteresan olarak başka hangi site adresi yazarsam yazayım çekiyor. Yardımcı olur musunuz?

    Hype teması kullanıyorum

  • 27-08-2022, 22:01:46
    #2
    kodları paylaş döngünde hata var
  • 28-08-2022, 01:53:31
    #3
    kodları görmemiz gerekiyor
  • 28-08-2022, 02:16:48
    #4
    <?php
    require get_template_directory() . '/inc/zebra_curl.php';
    
    function getBlogPosts(){
    
    // include the library
    // (you don't need this if you installed the library via Composer)
    
    // instantiate the Zebra cURL class
    $curl = new Zebra_cURL();
    
    // cache results 18.000 (5 hours) seconds
    $curl->cache(get_template_directory() . "/api-cache", 60 * 300);
    
    // since we are communicating over HTTPS, we load the CA bundle from the examples folder,
    // so we don't get CURLE_SSL_CACERT response from cURL
    // you can always update this bundle from https://curl.haxx.se/docs/caextract.html
    $curl->ssl(false);
    
    // a simple way of scrapping a page
    // (you can do more with the "get" method and callback functions)
    
        $url = get_ayar("blog_url");
        $post_type = get_ayar("blog_post_type");
        $request_url = $url . "/wp-json/wp/v2/" . $post_type;
        $thumb_request_url = $url . "/wp-json/wp/v2/media/";
        $cat_request_url = $url . "/wp-json/wp/v2/categories/";
    
        $return = $curl->scrap($request_url."?per_page=".get_ayar("blog_post_count"), true);
    
        $data = json_decode($return);
        $final_data = array();
        $i = 0;
    
        foreach($data as $final){
    
        $media_id = $final->featured_media;
        $media_req = $thumb_request_url.$media_id;
            if($media_id == 0){
                $thumb = "";
            }else{
                $thumb = json_decode($curl->scrap($media_req, true))->media_details->sizes->medium->source_url;
            }
    
        $final_data[$i]["post_title"] = $final->title->rendered;
        $final_data[$i]["post_thumbnail"] = $thumb;
        $final_data[$i]["post_link"] = $final->link;
        $final_data[$i]["post_content"] = $final->content->rendered;
        $final_data[$i]["post_category"] = json_decode($curl->scrap($cat_request_url."?post=".$final->id, true))[0]->name;
        
        $i++;
        }
        return $final_data;
    }
    @x1881; @emirkrgz;
  • 28-08-2022, 02:45:56
    #5
    musavirlik apisinden donen verinin array ya da object oldugundan emin olun cunku hata buna isaret ediyor.
    $data degiskenini su sekilde kontrol ederek kullanin;
    if (is_array($data) || is_object($data ))
    {
        foreach ($data as $final) 
       { 
           ...
       }
    }
    eger dizi ya da obje ise foreach calisacak. donen verileri phpden kendiniz de gorup bakmanizi tavsiye derim.
  • 28-08-2022, 15:44:42
    #6
    x1881 adlı üyeden alıntı: mesajı görüntüle
    musavirlik apisinden donen verinin array ya da object oldugundan emin olun cunku hata buna isaret ediyor.
    $data degiskenini su sekilde kontrol ederek kullanin;
    if (is_array($data) || is_object($data ))
    {
        foreach ($data as $final) 
       { 
           ...
       }
    }
    eger dizi ya da obje ise foreach calisacak. donen verileri phpden kendiniz de gorup bakmanizi tavsiye derim.
    Hocam çok teşekkür ederim ancak bulamadım
  • 28-08-2022, 15:48:39
    #7
    $data = json_decode($return);
    $final_data = array();
    $i = 0;
    bunun altına
    print_r($data);

    ekleyip çıktıyı atar mısın
  • 28-08-2022, 16:12:43
    #8
    emirkrgz adlı üyeden alıntı: mesajı görüntüle
    $data = json_decode($return);
    $final_data = array();
    $i = 0;
    bunun altına
    print_r($data);

    ekleyip çıktıyı atar mısın
    stdclass object ( [code] => rest_authentication_error [message] => sorry, you do not have permission to make rest apı requests. [data] => stdclass object ( [status] => 401 ) )

    bu çıktıyı verdi hocam

    @emirkrgz;
  • 28-08-2022, 16:52:05
    #9
    emirkrgz adlı üyeden alıntı: mesajı görüntüle
    $data = json_decode($return);
    $final_data = array();
    $i = 0;
    bunun altına
    print_r($data);

    ekleyip çıktıyı atar mısın
    Hocam benim anladığım kadarıyla rest apiyi istekleri engelleniyor. Musavirlik'te bu rest apiyi engelleyen bazı eklentiler mevcut. Onları devre dışı bıraktım fakat sorun hala çözülmedi