カテゴリー別アーカイブ: カスタマイズ

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を実行するたびに投稿記事が作成されるようになります。

+1button

Google +1ボタンを超簡単に投稿記事内に自動で入れる方法

+1 ボタン
簡単に言うと、Google版「いいね!」ボタンのことです。

http://www.google.com/intl/ja/webmasters/+1/button/
のジェネレーターより作成してhtmlを編集することでWEBサイト内に追加することができます。

テーマ内のfunctions.phpに下のコードを追記保存するとhtml編集せずにGoogle+1ボタンを投稿記事内に挿入することができます。
挿入場所は本文の終わり後です。

add_filter('the_content', 'wpr_google_plusone');
function wpr_google_plusone($content) {
	$content = $content.'<div class="plusone"><g:plusone size="tall" href="'.get_permalink().'"></g:plusone></div>';
	return $content;
}
add_action ('wp_enqueue_scripts','wpr_google_plusone_script');
function wpr_google_plusone_script() {
	wp_enqueue_script('google-plusone', 'https://apis.google.com/js/plusone.js', array(), null);
}

size=”talll”の部分を[small],[medium]へ変更すると+1ボタンの大きさを変更できます。

■参照URL

WordPress hook: Automatically add a Google+ button to your posts

管理画面の記事一覧で予約投稿記事の投稿時刻を追加表示させる

管理画面の記事一覧で予約投稿記事の投稿時刻を追加表示させる方法です。
記事の一覧で予約投稿をした場合一覧では予約時間がいつなのか表示されないので管理が大変です。
この状態から

この状態へ修正する方法です。

デメリット:

コアファイルを直接編集するやり方なので、
WordPressのアップデートを行うと上書きされて元に戻ります。

メリット:

予約投稿記事数が多く、予約投稿の時刻まで管理したいときに便利

バージョン

WordPress3.3

ファイル

/wp-admin/includes/class-wp-posts-list-table.phpを編集します。

line:593をしたのように編集します。
■変更前

		_e( 'Scheduled' );

■変更後

		_e( 'Scheduled' );
		echo "<br>";
		echo '<span style="color:red;">'.$m_time.'</span>';

functions.phpを更新するとサイトが真っ白になり、管理画面にも入れなくてどうしようもない場合の対処方法

functions.php

functions.phpを更新したらサイトが真っ白になり、管理画面にも入れなくて困ったときは


サーバーに直接ログインしてfunctions.phpの編集部分を戻してアップロードしなおして下さい。

これで解決です。
続きを読む

WPTouchにソーシャルボタンを追加する

twitterボタン,likeボタン,はてなブックマークボタンはPCと同じでよいです。
mixiチェックは少し変更しないといけない点があります。

詳しくは仕様書をご確認下さい。
技術仕様 >>mixi Developer Center (ミクシィ デベロッパーセンター)
続きを読む

WordPressのFeedURL

FeedはRSS、ATOMの総称です。
RSS,ATOMはWEBサイトの更新情報・記事の概要などを
配信するための文書規格の一つ。

形式 用途
RSS1.0(RDF)  テキスト配信向き
RSS2.0(RSS0.9*) 全文配信ができる

|ATOM| RSSの曖昧な仕様などを含め周辺技術を統一した規格
配信される内容は,summary(要約・概要)とcontent(内容)に明確に分けられる|

RDF形式


http://blog.livegoods.net/?feed=rdf

RSS形式


http://blog.livegoods.net/?feed=rss

RSS2形式


http://blog.livegoods.net/?feed=rss2

ATOM形式


http://blog.livegoods.net/?feed=atom

カテゴリを指定したい場合は


http://blog.livegoods.net/wp-rss2.php?cat=8

?cat=[カテゴリID]を加えます。

↑はカテゴリID3のフィードを取得します。

カテゴリIDがわからない場合は、
カテゴリ一覧のカテゴリ名の上にマウスを乗っけます。

すると画面上にURLが表示されます。
tag_ID=** の**の値がカテゴリIDです。

■参照URL

WordPressのRSSのURL – WordPress情報
WordPress Feeds – WordPress Codex 日本語版
Feed,RSS,Atom:フィードとは (初心者向け解説) : Curo.jp

固定ページのデザインを変える方法

固定ページのデザインを変える方法です。


公式ヘルプは下記の通り

固定ページは投稿と似ています。どちらもタイトル、本文、関連メタデータがありますが、固定ページが投稿と違うのは時系列のブログの流れの中には含まれず、永久的な投稿のようなものであるという点です。固定ページにはカテゴリーやタグを追加することはできませんが、階層化ができます。固定ページを他の “親”固定 ページの下に配置し、グループを作成することが可能です。

固定ページ作成は投稿作成とよく似ており、投稿編集画面と同様に画面上のボックスのドラッグ&ドロップや展開・折り畳み、表示設定タブでカスタマイズできます。この画面にはバージョン 3.2 から導入された集中執筆モードも含まれており、ビジュアル・HTML エディタの両方でフルスクリーンボタンをクリックして利用できます。ページエディタはほぼ投稿エディタと同じように動作しますが、ページ属性ボックスには特有の機能が含まれています。

親 – ページ間に階層構造を持たせることができます。たとえば、“自己紹介” ページの下に “身の上話” や “愛犬のこと” といったページを置くことができます。ページ階層の深さに制限はありません。

テンプレート – 一部のテーマには、特定のページのために特別な機能やレイアウトを追加するカスタムテンプレートが用意されています。お使いのテーマにそれがあればこのドロップダウンメニューに表示されます。

順序 – 固定ページは通常アルファベット順に並べられますが、この欄に数字を入力 (例: 最初にくるものは 1) することで好きな順序に変更できます。

続きを読む