• サーバ情報:
    WordPressバージョン:3.5.1
    PHPバージョン:5.3.3
    MySQLバージョン:5.0.95

    以前、PEARのXMLRPCライブラリを使った自動投稿でお世話になりましたが、以下のソースで取り合えずカスタムフィールドまで含めて外部からの自動投稿対応ができたのですが、投稿の際に以下ソースを1回だけブラウズで叩いて投稿した後で4,5分後になぜか同じ内容が2重で投稿されてしまっている状況です。4,5分と書きましたが実際は直ぐに2重になっていたり2,3分後だったりの時もあります。(内容は同じでパーマリンクは自動で枝版「-2」がついています。)
    どなたか心当たりがある方いましたらご教授いただけませんでしょうか。

    <?php
    
    //PEAR XML_PRCの読み出し・ブログID取得
    require_once("XML/RPC.php");
    
    $host = "www.XXXX.jp";
    $xmlrpc_path = "/YYYY/xmlrpc.php";
    $appkey = '';
    $user = 'test_ID';
    $passwd ='test_password';
    
    $c = new XML_RPC_client($xmlrpc_path, $host, 80);
    
    $appkey = new XML_RPC_Value($appkey, 'string');
    $username = new XML_RPC_Value( $user, 'string' );
    $passwd = new XML_RPC_Value( $passwd, 'string' );
    
    $message = new XML_RPC_Message(
    'blogger.getUsersBlogs',array($appkey, $username, $passwd)
    );
    
    $result = $c->send($message);
    
    if(!$result){
    exit('Could not connect to the server.');
    } else if( $result->faultCode() ){
    exit($result->faultString());
    }
    
    $blogs = XML_RPC_decode($result->value());
    
    $blog_id = new XML_RPC_Value($blogs[0]["blogid"], "string");
    
    //--------データ挿入パート----------------------------
    
    $title = 'テストタイトル';
    $categories = array(  'テストカテゴリー'  );
    $description = 'テスト本文';
    $tags = array(  'テストタグ'  );
    
    $custom_fields = array_map(
     create_function(
      '$f',
      'return new XML_RPC_Value(array(
        "key"   => new XML_RPC_Value($f[0],"string"),
        "value" => new XML_RPC_Value($f[1],"string")
       ), "struct"
      );'
     ),
     array(
      array("aioseop_title", "テストタイトル"),
      array("aioseop_keywords", "テストタイトル"),
      array("aioseop_description", "テストディスクリプション")  
    
     )
    );  
    
    $content = new XML_RPC_Value(
    array(
    'title' => new XML_RPC_Value($title, 'string'),
    'categories' => new XML_RPC_Value($categories, 'array'),
    'description' => new XML_RPC_Value($description, 'string'),
    'mt_keywords' => new XML_RPC_Value($tags, 'array'),
    'wp_slug' => new XML_RPC_Value('test-Permalink','string'),
    'dateCreated' => new XML_RPC_Value(time(), 'dateTime.iso8601'),
    'custom_fields' => new XML_RPC_Value($custom_fields, 'array')
    ),
    'struct');
    
    $publish = new XML_RPC_Value(1, "boolean");
    
    $message = new XML_RPC_Message(
    'metaWeblog.newPost',
    array($blog_id, $username, $passwd, $content, $publish)
    );
    
    $result = $c->send($message);
    
    if(!$result){
    exit('Could not connect to the server.');
    } else if( $result->faultCode() ){
    exit($result->faultString());
    }
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 jp008899

    (@jp008899)

    追伸。

    すいませんコーデの最後が切れてしまいましたが実際には最後に「 ?> 」が付いています。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「PEARのXMLRPCライブラリでの外部投稿において2重登録」には新たに返信することはできません。