自作プラグインをWordPrss公式サイトへ登録申請したら拒否された話

2016年、初めてWordpressの公式サイトへ自作プラグイン(wp users guide)を登録しました。

これでインストールも更新も管理画面から簡単に行えるようになりましたのでユーザーさんにとっても便利になったと思います。

さて、タイトルの件についてですが、公式サイトに登録する手順を教えてくれるサイトを参考にreadme.txtを編集したり登録申請したりしたのですが、そういった解説サイトで抜けているのが「審査の結果、以下の理由で拒否されました」という内容。

私も初めて申請したので、今までWPのルールに則っていない記法を行っていた事を色々と知り、深く反省すると共に「やっぱりWordpressって便利に作られているなぁ」と改めて感嘆しました。

そこで私と同じように登録の申請で拒否された恥ずかしい人の為に、私が拒否された内容と解決策を記しておきます。参考になれば幸いです。

記事の中にある画像データをサムネイルで取得する関数

記事の中にある画像を直接取得する方法です。

get_children関数やthe_post_thumbnail関数が利用できない場面で使えると思います。
似たような関数を探せば同じようなものが出てくるのですが、どうも画像のURL属性しか取得していない感じですので「ちょっと違うなー」と思って作ってみました。

この関数の良いところは「attachment_id」が取得できる事です。
つまりidさえ取得できれば「wp-get_attachment_****」と付くものは使えるという事です。

[php]
/*
記事の中から指定された順番の画像データを取得
(imgタグのclass属性 wp-image-XX を利用)
$content : $post->post_content
$idx : 記事内の画像の表示順
*/
function get_post_image($content="", $idx=0) {
$thumb = "";
if(strlen($content) === 0) return $thumb;

// imgタグのwp-image-ID クラスを検索
preg_match_all(‘/wp-image-(\d+)/’, $content, $m);

if(count($m[1]) > 0) {
while(!isset($m[1][$idx])) {
$idx–;
if($idx < 0) break;
}
// $m[1][$idx] = attachment_id
if($idx > -1) $thumb = wp_get_attachment_image($m[1][$idx]);
}

return $thumb;
}

[/php]

functions.phpなんかに書いておけば良いかと思います。

呼び出すときは、

[php]
if(has_post_thumbnail()) :
$thumb = get_the_post_thumbnail();
else:
$thumb = get_post_image(get_the_content());
endif;
[/php]

でサムネイル画像が取得できます。

返り値

<img>タグ。取得できなかった場合は空文字です。

<img>タグは20行目のwp_get_attachment_imageで取得しているので、ここを色々変更すれば自由に加工できます。

オプション値について

$content
HTMLの記事です
$idx
記事に表示される画像の○番目を取得します。(※1番目の画像 = 0)
○番目の画像が見つからない場合は$idxを除算しながら取得します。

注意!!

この関数はwordpressがimgタグに自動で付加する「wp-image-XX」というclassから取得しています。
今後、wordpressの仕様が変更になると利用できなくなる可能性があるのでご注意ください。

近況

最近、WordPressの案件を離れて生産管理のWebシステムを構築しています。

具体的にはAccess2000で納品していたシステムをWebに移管する作業です。
なるべく違和感や操作感の違いが出ないように現行システムの雰囲気を保ったまま移植しようとしているので結構大変です…。AccessにはAccessの良さがありますからね。

主にjQueryを駆使しながら色々作業をしているので、その副産物で出来たものを公開しています。それがWordPress関連よりjQueryのプラグイン関連の記事が最近多い理由です。

まぁ副産物で出来たものは会社の資産でもあるわけですがオープンソースの今の時代。当社の副産物も結局色々なサイトのソースコードを参考にしながらの二次的なものもあるわけですから、皆さんにも大いに利用してもらいたいわけです。

むしろそうやって色んなものを公開して「ISプランニング」の認知度が上がる方が会社の資産に繋がるのではないか、と。

そうは言っても、いろんなプラグインを作成するのに時間は掛かっているわけでして、もし気に入ったプラグインが見つかり、それが有益だった場合は寄付なんかしていただけると喜ぶのです。←本音

当社は最近「ポチ」という寄付が出来るサービスに登録しました。さ!さ!皆様、遠慮せずに!←本音


今後ですが、<select>の複数列バージョンのようなものをリリース予定です。

WordPressの管理画面で一部が文字化け

WordPressの管理画面を利用していて一部文字化けが起こっていました。
下を見てもらえれば分かりますが、「カスタムフィールド」を追加した時に、ボタンも含めて悲惨な事になってしまいます。

カスタムフィールドを追加した際に起こる文字化け

「削除」「更新」のボタンも文字化け

WordPress 管理画面 一部 文字化け

元々、使用しているサーバーの文字コードがShift-JISなので、恐らくAJAXで通信した際にどうのこうの…という事だと思います。
かと言って「じゃあサーバーのデフォルトの文字コードを変えよう」という簡単な状況でもないので思案に暮れてましたが、こちら様のブログで書かれている「.htaccess」の設定を適用したら直りました!大感謝!!

WordPress 管理画面 一部 文字化け

実際には以下の設定を「.htaccess」に追加してアップロードしました(UTF-8Nで保存)。

[php]

php_flag output_buffering Off
php_value output_handler none
php_value default_charset UTF-8
php_value mbstring.language japanese
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output UTF-8
php_value mbstring.internal_encoding UTF-8
php_value mbstring.substitute_character none

[/php]

WordPressのインストールフォルダを変更する

現在WordPressをインストールしているのが「blog」というフォルダ。
ブログだけの運用なら別に構わないが、ホームページを全てこれでまかなおうと思ったら変なので、
http://www.is-p.cc/blog

http://www.is-p.cc/
に移す事にする。
必要なのは「wp-config.php」と自分が作成したテーマファイルのみ。

(さらに…)