新しいブログを開発・公開しました

Qiita連携WordPressプラグインWP-Qiitaの導入とsyntax error対策

はじめに

最近Qiitaにもプログラミングネタを中心にコンテンツを少し書いています.

というのもQiitaではユーザ間のやり取りが活発で, コードを書いた際により効率化されたコードを教えてもらえたりってこともあります. あとストックやいいねといったシステムを通して読みてからアクションがあるとやっぱり嬉しくなります.

ただし, このブログもあるのでどう使い分けていくかが問題になるところ. この手の話は既に多くの方が議論されていて, その解決策の1つがWordPressとQiitaの連携プラグインです.

WP-Qiitaのインストール

QiitaとWordPressの個人ブログをもっと親密に連携させるプラグイン「WP Qiita」 - Qiita
個人のブログで細々と記事を書いていてもなかなかPVが増えないし、記事の拡散力も弱い。 各種SNSを利用して拡散を図っても、技術系の記事はなかなか一般ウケしないので、埋もれてしまったり、流れてしまったり…と、色々と四苦八苦することが多い...

WP-QiitaKa2さんが開発された, Qiitaの記事やそのストック数を表示させるWordPressプラグインです.

今回はこのプラグインを導入してみます.

インストール方法は以下の2つ.

  • WordPress管理画面からプラグイン→新規追加で「WP-Qiita」で検索&インストール
  • GitHubで公開されているコードを導入&WordPressサーバに転送

有効化できればこれでインストールは終わりです.

WP-Qiita有効化時のSyntax error問題

うまくいけばよかったのですが, 僕の環境ではプラグインを有効化した際にエラーがでました.

環境

  • Minibird
  • PHP ver5.6.22

エラー内容

重大なエラーを引き起こしたため、プラグインを有効化できませんでした。
Parse error: syntax error, unexpected ‘[‘ in ….

原因はPHPの配列の宣言が問題でした.

PHPのVer5.4からは配列を角括弧で宣言できますが, なぜかPHP5.6の環境でその構文でエラーが… そのため配列定義の部分を従来のarray関数に修正しました.

$arr = array(0, 1, 2); // PHP5.3以下の場合
$arr = [0, 1, 2]; // PHP5.4以上だと左の書き方で配列を宣言可能

修正箇所

修正したコードはGitHubにpushしてあります.

GitHub - icchi-h/wp-qiita: You are able to manage the articles of Qiita in the WordPress by using this plugin. In this plugin is using the Qiita API v2 to the Qiita connection.
You are able to manage the articles of Qiita in the WordPress by using this plugin. In this plugin is using the Qiita API v2 to the Qiita connection. - GitHub -...

修正箇所は以下の4箇所

  • lib/core.php 137行目
var_dump([ $response, $url ]);
↓
var_dump( $response, $url );
  • lib/main.php 337行目
add_query_arg( ['page' => 'wp-qiita-options'] , admin_url('options-general.php')),
__( 'Settings', $this->domain_name )
↓
add_query_arg(array( 'page' => 'wp-qiita-options') , admin_url('options-general.php')),
__( 'Settings', $this->domain_name )
  • lib/main.php 1706行目
if (!in_array(intval($logging_type), [ 0, 1, 3, 4 ]))
↓
if (!in_array(intval($logging_type), array( 0, 1, 3, 4 )))
  • templates/wp-qiita-options.php 368行目
<!--?php if (in_array($_local_code, [ 'ja', ])) : ?-->
↓
<!--?php if (in_array($_local_code, array( 'ja', ))): ?-->

これで無事にインストールすることが出来ました.

Simplicityのスクロール追従領域との相性問題

一難去ってまた一難.

WP-Qiitaを有効化してウィジェット内に入れると, Simplicityのスクロール追従ウィジェット機能が動作しないことが分かりました.

恐らくこのページをPCで見ている方はページの右側にこの記事のインデックスが常に固定されていると思いますが, このインデックスを固定している機能です.

この問題に対する解決策はまだ見つけられていません.

終わりに

というわけで, 折角動くようになったWP-Qiitaですが, Simplicityとの相性問題で有効化しないことにしました. WP-Qiitaの中身を調べて時間をかければなんとかなる可能性もありますが, 時間もあまりないのでやめることにします(笑)

PHPは2,3年前に少し使っていたことがありますが, まだまだ不慣れな言語です. 来年度から始まる社会人生活を思うと, プラグイン1つや2つぐらいスパッと開発できるようになりたいものです.

コメント