WordPress内からXML-RPCを利用して記事投稿を行う方法

xml-RPC
WordPress内からXML-RPCを利用して記事投稿を行う方法です。

XML-RPCとは

RPCプロトコルの一種であり、エンコード(符号化)にXMLを採用し、転送機構に HTTP を採用している。非常に単純なプロトコルで、少数のデータ型やコマンドだけを定義しているだけであり、その仕様は2枚の紙にまとめられる。これは多くのRPCシステムが膨大な量の規格を規定し、実装に多量のプログラミングを要することに比べると、際立った特徴と言える
XML-RPC – Wikipedia

XML-RPCを利用するとWordPressの管理画面に入ることなく
WordPressの投稿記事を書くことができます。

このエントリではWordPressでphpを実行して違うWordPress記事投稿を行います。

手順

参照したソースコードは
[WordPress]XML-RPCを利用して外部から投稿したりする。 | WEBプログラム覚書
のものを利用させていただいています。

[1] XML-RPCの設定を行います。

xml-RPC
投稿先の管理画面で

設定 > 投稿設定 > リモート投稿

の「XML-RPC WordPress、Movable Type、MetaWeblog および Blogger XML-RPC 投稿プロトコルを有効にする。」
にチェックをいれて設定を保存します。

[2]WordPress内でZend Frameworkが利用できるように
『WP Zend Library』のプラグインをインストールします。

詳細は
『WP Zend Library』WordPressでZend Frameworkを使えるようにするプラグイン | WordPress攻略本
に記載しています。

[3]phpを書きこむページを用意する

編集するページはどこでもかまいません。
例としてphpを実行するための固定ページを新規に用意します。

theme内のpage.phpを複製して、ファイル名をtest-xml-rpc.phpとします。
test-xml-rpc.phpの冒頭部分にテンプレート名を指定します。

<?php
/*
Template Name: test-xml-rpc.php
*/
?>

保存後、固定ページ作成画面の
ページ属性 > テンプレートからtest-xml-rpc.phpを選び保存します。
xml-RPC

[4]phpを編集する

XML-RPCのライブラリとして、 Zend FrameworkのZend_XmlRpc_Clientを利用します。
Zend Framework: Documentation: Zend_XmlRpc_Client – Zend Framework Manual

 <?php

  // URI、ログインユーザ名とパスワードの設定
 $uri = 'http://wordpress.domain/xmlrpc.php';
 // 投稿先WordPressのログインユーザー名			
 $user = 'username';
 // 投稿先WordPressのログインパスワード		
 $passwd = 'password';


  
 $client = new Zend_XmlRpc_Client($uri);

  

 // 接続してブログの基本情報を取得

 // 失敗すると例外がスローされる。

  

 try {
    //wp.getUsersBlogsはWordPress内で定義されているメソッドなのでこのまま
     $infos = $client->call('wp.getUsersBlogs', array($user, $passwd));

  

 } catch (Zend_Exception $e) {

     echo $e->getMessage();

 }

  

 echo '<h2>ブログの基本情報</h2>';

 echo '<pre>';

 var_dump($infos);

 echo '</pre>';

  

 // blog ID 基本的に1。

 // 3系では複数のブログが管理できるようなので増えるのかも?

 $blog_id = $infos[0]['blogid'];



 // 投稿データの作成

 $contents = array(
	//記事件名
     'title'             => 'テスト投稿',
	//カテゴリ名を日本語名で指定
     'categories'        => array('インテリア', '建築'),
	//カスタムフィールドがあれば指定 なければnull
     'custom_fields'     => array(array('key' => 'field_key1', 'value' => 'field_key1のvalue'),

                                  array('key' => 'field_key2', 'value' => 'field_key2のvalue')

                                 ),
	//記事本文
     'description'       => 'テスト投稿の本文',

     'dateCreated'       => null,
	 //記事のスラッグになる
     'wp_slug'           => 'xml-rpc-testpost',

     'mt_allow_comments' => null,

     'mt_allow_pings'    => null,

     'mt_convert_breaks' => null,

     'mt_text_more'      => null,
 //記事の抜粋に入る
     'mt_excerpt'        => 'Wordpress XML-RPCのテスト',
	//記事のタグに入る
     'mt_keywords'       => array('icon', 'インスピレーション'),

     'mt_tb_ping_urls'   => null,

 );

  

 // 公開設定 falseだと下書きの状態
 // true で公開
$publish = false;

  

 // 投稿を実行
//metaWeblog.newPostはWordPress内で定義されているメソッドなのでこのまま
 $result = $client->call('metaWeblog.newPost',

                         array($blog_id, $user, $passwd, $contents, $publish)

                         );

  

 echo '<h2>実行結果 成功するとPost IDが返ってくる</h2>';
 echo '<pre>';
 echo $result;
 echo '</pre>';
 ?>

test-xml-rpc.phpを実行するたびに投稿記事が作成されるようになります。

『Where did they go from here』Amazonのこの商品を見たお客様はこれも見ていますが実現できるプラグイン

「Amazonのこの商品を見たお客様はこれも見ています」が実現できるプラグイン。
いわゆるおすすめ機能(レコメンドサービス)。

似た機能で外部WEBサービス(LinkWithin,Outbrain Zenback,The Slide by SimpleReach)とありますが、単体のプラグインで、自由にCSS編集ができる珍しいプラグインです。

動作環境

WordPress3.3.1
プラグインバージョン0.3.1
続きを読む

seo

WordPressで加速させる!ソーシャルメディア時代の[新]SEO戦略マニュアル

SEOテンプレートで有名な「賢威」の制作者でもある松尾茂起氏による書籍

「ソーシャルメディアをどうSEOに活用するのか?」
「SEOに強いWordPressのカスタマイズとは?」
「今」通用するSEOノウハウが詰まった、ソーシャルメディア時代の新しいSEO指南書。 SEO初心者、中級者、上級者の方まで、新しい「気付き」を手に入れていただける一冊です。 Twitter、Facebook、Google+、ソーシャルメディアの隆盛によって、変化し続ける検索エンジン。

これからのWEBマーケティングで大事なのは、コンテンツプランニングをベースとした、ソーシャルメディア×SEOのコラボレーションです。
そして、その戦略を強力にバックアップしてくれるCMSが「WordPress」なのです。
SEOに強いプランニングチーム「WEBライダー」が、数多くのサイトプランニングで培ってきたSEOノウハウがここに凝縮。

初心者でも明日からすぐに始められる、WordPressを用いたSEOに強いサイト制作の解説は必見です。

オリジナルWordPressテーマ、ダウンロードサービス付き。

目次

CHAPTER1:検索エンジンから評価されるための5つの要素
CHAPTER2:内的SEO(内的要因の強化)
CHAPTER3:外的SEOとコンテンツプランニング(外的要因の強化)
CHAPTER4:SEOプランニング(キーワードの選び方とサイト運営)
CHAPTER5:WordPressでサイトをつくる(基礎知識編)
CHAPTER6:WordPressでサイトをつくる(プラグイン編)
CHAPTER7:WordPressでサイトをつくる(実践編)

WordPressで加速させる!ソーシャルメディア時代の[新]SEO戦略マニュアル