WordPress發文同步到Twitter、新浪微博

無聊看了看新浪微博的API,因為跟twitter一樣使用OAuth2.0協議,所以可以通過修改Wordpress源碼,或者自己做一個plugin,即可實現發文同步到這些有api的SNS上。
當然,首先你要先申請成為開發者,獲得appid,這點twitter就很開放,只要你是twitter用戶就可以了。至於微博,呵呵,你懂的。

以下是同步到新浪微博的例子。
將一下這段代碼添加到你wordpress在用的那個主題的functions.php文件的末尾,$status就是你要發的內容,然後更改'你的appid'、'你的用戶名:你的密碼',這樣在你每次在wordpress發文之後,都會馬上同步到twitter和新浪微博了。

//synchronize to weibo
function post_to_sina_weibo($post_ID) {
  if( wp_is_post_revision($post_ID) ) return;
    $get_post_info = get_post($post_ID);
    $get_post_centent = get_post($post_ID)->post_content; 
    $get_post_title = get_post($post_ID)->post_title;
  if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
    $request = new WP_Http;
    $status = '' . strip_tags( $get_post_title ) . '€‘ ' . get_permalink($post_ID) ;
    $api_url = 'https://api.weibo.com/2/statuses/update.json';
    $body = array( 'status' => $status, 'source'=>'你的appid');
    $headers = array( 'Authorization' => 'Basic ' . base64_encode('你的用戶名:你的密碼') );
    $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) );
    }
}
add_action('publish_post', 'post_to_sina_weibo', 0);

PHP使用strtotime()獲取以當前日期為基準N天前|N天后的日期

雖然基本的寫法可以有很多,例如可以使用UNIX TIMESTAMP以計算秒數差來獲得日期,但是PHP有自帶的strtotime()函數還是相當便利的。

	 
date("Y/m/d"); // 今天
date("Y/m/d",strtotime("-10 day")); // 10日前
date("Y/m/d",strtotime("-2 week")); // 2星期前
date("Y/m/d",strtotime("-2 month")); // 2個月前
date("Y/m/d",strtotime("-5 year")); // 5年前
date("Y/m/d",strtotime("+10 day")); // 10日後
date("Y/m/d",strtotime("+2 week")); // 2星期後
date("Y/m/d",strtotime("+2 month")); // 2個月後
date("Y/m/d",strtotime("+5 year")); // 5年後

PHP Framework的選擇

我想大多創作者都不喜歡重複性的工作。例如從小學開始學習英文的時候,老師總是要我們抄單詞表,學習漢字的時候好像也有抄過,但是印象就不那麼深了。我不否認抄有其作用,世界上沒有做任何一件事是無用功來的,但是不喜歡就是不喜歡。因為重複性的機械工作,在這個時代交給計算機、機械去做不就好了嘛?

所以很多programmer就想到了Framework框架這樣東西。

Framework核心精神就是加速開發程式,將很多一般程式開發初始的基礎架構已經包含在框架裡,以及避免讓開發者在程式架構設計出現錯誤,至少安全性上面 Framework都做的很好,當然這只是一個工具,使用者的好壞才能決定工具的好壞。現行擁有很多開源的PHP框架,隨便在google上都能搜得到。而我用得比較多的就是CodeIgniter(簡稱CI)、CakePHP,還有就是對CI的其中一批開發人員再添加上他們自己的理念後開發出來的FuelPHP也了解了一下。一般人都有先入為主的習慣,所以我也無法判定哪個比哪個更好。我為什麼用以上兩個,就是因為簡單易用吧。反正學習是要舉一反三的,學習好簡單的架構,之後跳到其它 Framework 的時候,或許就可以減少很多摸索時間了。

PHP通過User Agent判定用戶設備

判定class

deviceCheck();
    }
 
    public function deviceCheck(){
         
        //獲取User Agent
        $this->ua = $_SERVER['HTTP_USER_AGENT'];
 
        if(strpos($this->ua,'iPhone') !== false){
            //iPhone
            $this->device = 'iphone';
        }
        elseif(strpos($this->ua,'iPad') !== false){
            //iPad
            $this->device = 'ipad';
        }
        elseif((strpos($this->ua,'Android') !== false) && (strpos($this->ua, 'Mobile') !== false)){
            //Android
            $this->device = 'android_m';
        }
        elseif(strpos($this->ua,'Android') !== false){
            //Android
            $this->device = 'android_t';
        }
        else{
            $this->device = 'pc';
        }
    }
 
    public function getDevice(){
        return $this->device;
    }
}
?>

執行

getDevice();
?>