• 02-08-2015, 00:07:13
    #1
    Üyeliği durduruldu
    arkadaşlar bot yazıyorum bütün veriler elimde. öne çıkarılmış görseli iframe kodu kategori başlıgı vs. fakat veritabanına yazdırırken problem yaşıyorum. bana güzel bir şekilde düzenlenmiş bir insert kodu verebilirmisiniz mümkünse wordpress fonksiyonları ile hazırlanmış olsun. bende böylece bütün wordpress botlarımda o inserti kullanabileyim. kategorisine kadar herşeyini kaydedecek kullanışlı bir kod parçası tek istediğim şimdiden teşekkürler
  • 02-08-2015, 11:55:00
    #2
    1.5-2 sene önce şöyle bir class yazmıştım hocam
    <?php 
    
    class Bot{
        
        public function oku($url, $postdata = null){
            $ch = curl_init(); 
    
            curl_setopt($ch, CURLOPT_URL, $url);  
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0');
            curl_setopt($ch, CURLOPT_HEADER, 0); 
    
            if($postdata){
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
            }
    
            $sonuc = curl_exec($ch);  
            curl_close($ch);  
    
            return trim(preg_replace('/\s+/', ' ', $sonuc));
        }
    
        public function wp_load(){
            // wordpress dosyasını yükle
            if ( !defined('WP_LOAD_PATH') ) {
                $classic_root = dirname(dirname(dirname(dirname(__FILE__)))) . '/' ;
                
                if (file_exists( $classic_root . 'wp-load.php') )
                    define( 'WP_LOAD_PATH', $classic_root);
                else
                    if (file_exists( $path . 'wp-load.php') ){
                        define( 'WP_LOAD_PATH', $path);
                    }
                    else
                        exit("Dosya Bulunamadı. wp-load.php");
            }
            require_once( WP_LOAD_PATH . 'wp-load.php');
        }
    
        public function wp_kategoriler(){
            $this->wp_load();
            return str_replace('<select ',"<select multiple='multiple' ", wp_dropdown_categories(array('show_count' => true,'hide_empty' => false,'class'=>'form-control','echo' => false,'name' => 'kategori[]','id' => 'kategori[]')));
        }
    
        public function wp_baslik($baslik){
            $this->wp_load();
            global $wpdb;
            $basliklar = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts where post_title='$baslik'");
            if($basliklar>0) return true;
            return false;
        }
    
        public function wp_ekle($arr,$durum){
            $this->wp_load();
            parse_str($arr,$array);
            $post = array();
            $post['post_title']     = stripslashes_deep($array['baslik']);
            $post['post_content']   = $array['icerik'];
            $post['tags_input']     = $array['etiket'];
            $post['post_status']    = $durum;
            $post['post_category']  = $array['kategori']; //array(implode(",", $array['kategori']));
            $post['post_author']    = 1;
            $post_id = wp_insert_post($post);
    
            if($post_id){
                add_post_meta($post_id, '_aioseop_keywords', $array['etiket']);
                add_post_meta($post_id, '_aioseop_description', $array['aciklama']);
                add_post_meta($post_id, '_aioseop_title', stripslashes_deep($array['baslik']));
    
                if(trim($array['resim'])){
                    $upload_dir = wp_upload_dir();
                    //$image_data = file_get_contents($array['resim']);
                    $filename = sanitize_title($array['baslik']).".jpg";
                    if(wp_mkdir_p($upload_dir['path']))
                        $file = $upload_dir['path'] . '/' . $filename;
                    else
                        $file = $upload_dir['basedir'] . '/' . $filename;
    
                    $this->watermark($array['resim'], $file);
                    //file_put_contents($file, $image_data);
    
                    $wp_filetype = wp_check_filetype($filename, null );
                    $attachment = array(
                        'post_mime_type' => $wp_filetype['type'],
                        'post_title' => sanitize_file_name($filename),
                        'post_content' => '',
                        'post_status' => 'inherit'
                    );
                    $attach_id = wp_insert_attachment( $attachment, $file, $post_id );
                    require_once(ABSPATH . 'wp-admin/includes/image.php');
                    $attach_data = wp_generate_attachment_metadata( $attach_id, $file );
                    wp_update_attachment_metadata( $attach_id, $attach_data );
    
                    set_post_thumbnail( $post_id, $attach_id );
                }
                return $post_id;
            }else{
                return false;
            }
            
        }
    
        public function watermark($remote,$local){
            if(file_exists('watermark.png')){
                $stamp = imagecreatefrompng('watermark.png');
                $im = imagecreatefromjpeg($remote);
                
                $marge_right = 10;
                $marge_bottom = 20;
                $sx = imagesx($stamp);
                $sy = imagesy($stamp);
    
                imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
                imagejpeg($im, $local);
                imagedestroy($im);
            }else{
                file_put_contents($local, file_get_contents($remote));
            }
        }
    
    }
    wp_baslik fonksiyonu ile başlık daha önce bir yazıda kullanıldımı kontrol edebilirsin.

    wp_ekle fonksiyonuna ilk parametre olarak bir dizi vermen gerekiyor, içinde olması gereken değerlere fonksiyondan bakabilirsin, resim anahtarı verilirse onu öne çıkan görsel olarak ekler, ek olarak; dosyanın olduğu dizinde watermark.png varsa onuda görsel'in üstüne basar. ikinci parametre ise yazının durumu, 'draft' | 'publish' | 'pending'| 'future' | 'private' dan biri olabilir.

    biraz eski odluğu için hata verebilir, test edemedim. ama mantığını anlamak açısından işine yarar
  • 02-08-2015, 12:01:51
    #3
    byjameson adlı üyeden alıntı: mesajı görüntüle
    arkadaşlar bot yazıyorum bütün veriler elimde. öne çıkarılmış görseli iframe kodu kategori başlıgı vs. fakat veritabanına yazdırırken problem yaşıyorum. bana güzel bir şekilde düzenlenmiş bir insert kodu verebilirmisiniz mümkünse wordpress fonksiyonları ile hazırlanmış olsun. bende böylece bütün wordpress botlarımda o inserti kullanabileyim. kategorisine kadar herşeyini kaydedecek kullanışlı bir kod parçası tek istediğim şimdiden teşekkürler

    şu sınıf var oldukça kolay https://github.com/saltun/sBotClass

    googlede videolu kullanım klavuzuda vardı basit bir şekilde halledersin
  • 03-08-2015, 06:30:02
    #4
    Üyeliği durduruldu
    phpkoder adlı üyeden alıntı: mesajı görüntüle
    şu sınıf var oldukça kolay https://github.com/saltun/sBotClass

    googlede videolu kullanım klavuzuda vardı basit bir şekilde halledersin
    hocam inceledm bütün gece onu denedm. olmadı. content eklemiyor içeriği inherit yansıtıyor post type ı attachment yapıyor. kategori altına eklemiyor vs vs birdünya bozukluk var.

    EDİT: Hocam düzelttm tmm karakter uyuşmazlığından kaynaklanıyormuş. şuanda tek bir problemim var.Eklenen veriyi eklenen kategorinin altına kaydetmiyor onun için bir fonksiyon tavsiye edebilirmisiniz?
  • 03-08-2015, 10:32:50
    #5
    byjameson adlı üyeden alıntı: mesajı görüntüle
    hocam inceledm bütün gece onu denedm. olmadı. content eklemiyor içeriği inherit yansıtıyor post type ı attachment yapıyor. kategori altına eklemiyor vs vs birdünya bozukluk var.

    EDİT: Hocam düzelttm tmm karakter uyuşmazlığından kaynaklanıyormuş. şuanda tek bir problemim var.Eklenen veriyi eklenen kategorinin altına kaydetmiyor onun için bir fonksiyon tavsiye edebilirmisiniz?
    https://github.com/saltun/sBotClass

    deki cat değişkenine kategori id göndermen yeterli.

    eğer o sınıfla çalışmıyorsan post değeri gönderirken post_category değeride gönder dizi içinde

    örnek
    $newPost['post_category'] = array(1)
  • 03-08-2015, 12:01:20
    #6
    Üyeliği durduruldu
    phpkoder adlı üyeden alıntı: mesajı görüntüle
    şu sınıf var oldukça kolay https://github.com/saltun/sBotClass

    googlede videolu kullanım klavuzuda vardı basit bir şekilde halledersin
    phpkoder adlı üyeden alıntı: mesajı görüntüle
    https://github.com/saltun/sBotClass

    deki cat değişkenine kategori id göndermen yeterli.

    eğer o sınıfla çalışmıyorsan post değeri gönderirken post_category değeride gönder dizi içinde

    örnek
    $newPost['post_category'] = array(1)
    tam olarak anlayamadım kusurabakmayın. oop ye pek hakim değilim. şimdi tek sorunum bu kaldı.

    [PHPR]$cat = array('cat_name' => $name,'category_description' => $description,'category_nicename' => $slug,'category_parent' => '' );
    return $cat_id = wp_insert_category($cat);

    [PHPR]
    şu kısmımı editlemeliyim?