読者です 読者をやめる 読者になる 読者になる

monaurallab

モノラルラボ

WordPress の記事投稿スケジュールを iCal 形式で出力するプラグイン "postical" を作った

wordpress postical

経緯

  • WordPress の記事投稿スケジュールを、Google カレンダーとかから見られない? って質問をいただく
  • ちょっと調べたけどいいかんじのプラグインが見つけられない (たぶんあるんだろうけど)
  • 個人的にあったら便利っぽい気がした
  • 作った

postical

https://wordpress.org/plugins/postical/

WordPress の投稿スケジュールを iCal 形式で出力可能になるプラグインです。デフォルトでは公開済みの投稿のみ取得しますが、設定により、予約投稿記事も取得できるようになります。
iCal形式のURLをGoogleカレンダーの「他のカレンダー」→「URLで追加」から読みこませれば、投稿スケジュールをGoogleカレンダーに表示できる感じです。
メディアサイト系とかだと便利かも。

つかいかた

  1. インストールして有効化
  2. http://YOUR-WP-ADDRESS/postical で、iCal形式のデータが取得可能になります。
  3. 予約投稿記事も取得したい場合は、設定画面から有効にしてください。ランダムな文字列のURLが発行されます。
  4. あとは Googleカレンダーとかに、そのURLを登録などしてお使いください

今後の予定

  • 設定でランダムなURLを発行させて、予約投稿の情報もゲットできるようにしたい → しました
  • 設定で、取得件数を指定できるようにしたい (いまは新着50件固定)

というわけで設定画面作りたい、しかし、WPプラグインの設定画面作るのって結構めんどいんですね…

GitHub

https://github.com/matsuoshi/postical

Sublime Text 3 の初期設定まとめ

sublime text

自分メモ。完全に自分メモ。
諸事情により Sublime Text 3 を再インストールしたんだけど、設定がめんどくさかったので一応手順を自分メモ。

package controll を入れる

ここから

https://packagecontrol.io/installation

最低限のパッケージを入れる

  • emmet
  • editorconfig
  • sublime linter

日本語入力時、TABキーでの予測変換を有効に

Google IME で、予測変換のTABキーを使えるようにする

  • まず設定ファイル作成、メニューから Preferences > Key Bindings – Default を開く
  • ~/Library/Application Support/Sublime Text 3/Packages/Default/Default (OSX).sublime-keymap として保存
  • 100行目付近の以下をコメントアウト
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
    "context":
    [
        { "key": "setting.tab_completion", "operator": "equal", "operand": true },
        { "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
    ]
},

emmet の展開は cmd+E に、ctrl+E は行末移動に割り当てる

  • Preferences > Key Bindings – User を開き、以下の設定を書く
[
    {
        "keys": ["command+e"],
        "command": "run_emmet_action",
        "args": {"action": "expand_abbreviation"},
        "context": [{"key": "emmet_action_enabled.expand_abbreviation"}]
    },
    {
       "keys": ["ctrl+e"],
       "command": "move_to",
       "args": {"to": "eol", "extend": false}
    }
]

その他ちょっとした設定

  • Preferences > Settings > User を開き、以下の設定を入れる
    • フォントサイズ
    • 不可視文字を表示
    • スペルチェックを最初からonに
    • wordwrap を常にオンに
"font_size": 14,
"draw_white_space": "all",
"spell_check": false,
"word_wrap": true,

おわり

おわり

WordPress 4.4 の埋め込み(embed)機能の表示をカスタマイズする

wordpress

WordPress 4.4 から、簡単に WordPress の記事を本文中に埋め込めるようになりました。
こんなかんじ。

WordPress 4.4 “Clifford”

上記公式サイトによりますと

他の WordPress サイトに投稿を埋め込めるようになりました。エディターに投稿の URL を入れるだけで、設定したタイトル、抜粋、アイキャッチ画像を備えた埋め込みプレビューがすぐに表示されます。

とのこと。実際、URLを入れるだけなので簡単です。

で、この埋め込み表示のカスタマイズ方法を、ちょっとまとめます。

テンプレートをカスタマイズする

デフォルトで使用されるテンプレートは /wp-includes/embed-template.php に配置されています。
これを自分のテンプレートフォルダにコピーして、自由に編集すればOKです。
たとえば初期状態だと日付の表示はありませんが、適当にテンプレート内に <?php the_date() ?> などと記述すれば、日付が表示されるようになります。

で、カスタマイズしたテンプレートファイルを使用するために、functions.php にこんな感じの記述をしてください。

// embed: テンプレートファイルの切り替え
function my_embed_template()
{
    // 使用するテンプレートファイルを返す
    return plugin_dir_path(__FILE__) . 'embed-template.php';
}
add_filter('embed_template', 'my_embed_template');

CSS をカスタマイズする

新しくCSSファイルを読み込ませたい場合は、フィルターフックの embed_head を使います。

// embed: CSSファイルを追加
function my_embed_head()
{
    wp_enqueue_style('wp-embed-template-org', get_stylesheet_directory_uri() . 'new_css_file.css');
}
add_filter('embed_head', 'my_embed_head');

また、もしデフォルトのCSSファイルを読み込ませたくない場合は、以下の1行を追加します。

// embed: デフォルトCSSを読み込まない
remove_action('embed_head', 'print_embed_styles');

iframe出力をカスタマイズする

embed機能は iframe を出力するのですが、そこにもフィルタが用意されています。

// embed: iframe出力をカスタマイズ
function my_embed_oembed_html($content)
{
    // ここで $content をゴニョゴニョして return すればOK
    return $content;
}
add_filter('embed_oembed_html', 'my_embed_oembed_html');

ブラウザから表示を確認する

URLの末尾に /embed と付加、もしくはGET で embed というパラメタを渡せば、embed表示をブラウザ上で確認できます。
こんなかんじです。

https://ja.wordpress.org/2015/12/10/clifford/embed

http://www.shakaika.jp/?p=12008&embed

embed 機能を無効にする

埋め込み機能を無効にしたい場合は、以下のコードで可能でした。

// embed: 埋め込み機能を無効にする
function my_disable_wp_oembed()
{
    remove_action( 'wp_head', 'wp_oembed_add_host_js' );
}
add_action('init', 'my_disable_wp_oembed', 9999);

また、"disable-embeds" というプラグインもあるとのこと。

wordpress.org


結果、こんな風にカスタマイズできました。

日本の産業や学問を支えてきた地下施設、スーパーカミオカンデに潜入!ジオ・スペース・アドベンチャー後編

はい。 以上、こんなかんじ。

(内容は WordPress 4.4 / 2016.01.03 時点のものです)

今年のPHPカンファレンス関西は、セッション数が大幅UP!

このブログはPHPカンファレンス 関西 2015のリレーブログです。
PHPカンファレンス 関西の開催日までリレー方式でブログを繋いでいきます。

一つ前のブログは id:nano-eight さんの 「PHPカンファレンス関西2015が開催されます!」 でした。
明日のリレーブログは @shin1x1さん です。

セッションもトラックも増えた!!

さてさて、会場も変わった今年のPHPカンファレンス関西は、セッション(発表)の数が大幅に増えております。
ちょっと過去のセッションがいくつだったか、数えてみると……

  • 2013年 10セッション
  • 2014年 14セッション
  • 2015年 22セッション

なんと2015年は 2年前の倍以上に……!! (ライトニングトーク抜きの数字です)
部屋の数も4つに増え、さらにスポンサーさんのブースコーナーでも何か催しが企画されている模様。 タイムテーブルも発表されました。
http://conference.kphpug.jp/2015/timetable/

当日どのセッションを見るか迷ってしまうくらいなんですが、 事前にタイムテーブルをじっくり見て、予定たててしまいたいところですね。

セッションを軽くご紹介

ものすごーく短くかいつまんで、セッションをご紹介したいと思います。

基調講演は、いよいよ今年の秋にリリースされる PHP7 について!
(PHP5.6の次は、5.7 でもなく PHP6 でもなく、PHP7 となりますよ)
個人的に、正直 PHP7 の情報はぜんぜんチェックできていないので、すごく楽しみにしています。

また、今回特徴的なのはフレームワークに関するセッションが充実しているという所でしょうか。
バージョン5 がリリースされて間もない Laravel, こちらも 3.0 リリース直後となる CakePHP, さらに Symfony, Yii, Phalcon のセッションがずらりと揃っております。EC-CUBEさんのセッションでは Silex も扱われるようです。

ほかにも話題のキーワードとなっている関数型プログラミングについてのセッションや、チーム開発DMM.com さんのスクラム開発の話、テスト継続的インテグレーション(CI)AWSデータ分析セキュリティ
JavaScript などフロントエンドにも関わる話もでてきます。

……どれも気になるキーワードばかりです。
ほんと、どのセッション見るか迷いますねー。

このへんのトピックを、自分ひとりの力でアンテナ張って勉強するのなんて超大変で、なかなか広くも深くも追いきれないじゃないですか。こういったカンファレンスで、色んな方のお話をナマで聞くのって、すごく刺激になると思っています。

初心者向けセッションもあるよ!

PHPカンファレンス関西では、毎年かならず、PHP初心者向けのセッションも用意する方針にしています。

カンファレンスは上級者だけの集まりでは決してありません。「PHP詳しいわけではないし、なんか難しそうだし……」と思っている方も、ぜひご来場ください! 去年の来場者アンケートによりますと、参加者の40%の方がPHP経験3年未満でしたし、こわい人ぜんぜんいないよ!

ということで

もっかいタイムテーブルをチェックだ!
http://conference.kphpug.jp/2015/timetable/

どのセッションを見るか、みなさんも迷いまくってみてください、
5/30(土) PHPカンファレンス関西でお会いいたしましょう!

はじめてのプルリクエスト (wp-popular-posts プラグインにプルリクエスト送った話)

github git wordpress

あらすじ

  • wordpress-popular-posts プラグインは、人気の投稿を表示してくれる便利な WordPress プラグイン
  • カスタムHTMLを使って表示の設定をする場合、日付を表示する {date} というタグがどうやらサポートされてないっぽい…? あって良さそうなもんだけど
  • ソースコード読んでみると、PHPコードを数行書けば対応させられるようだ
  • やってみた
  • できた

とまあ、そういうコード修正をやりまして、まあ、そういうことは時々やるんですけど、今回はせっかくなので作者の方にプルリクエストを送ってみようと思ったのです。今までそんなのやったことなかったんだけど。

でも、もしプルリクエスト送ってない状態で今後プラグインにアップデートがあった場合、毎回僕の修正を入れるってわけにもいかない。だから本家に取り込んでもらえれば、自分としても楽できるなあ、という自分本位な理由もありつつ。もちろんプラグインに協力したいって気持ちと、興味もありつつ。


さて。

プルリクエスト、僕は知らない方に送ったことはありません。しかも異国の方。緊張する。なんか作法とかあるのか? あるっぽい。

はてブ 1000超えのこちらのページが大変参考になりました。 とりあえずポイントは「コミットをまとめる」「master ブランチから送らない」の2つの模様。 こちらの記事を10回くらい正座して読んで、かーなり緊張しつつ、pull request をポチっと。

相手への挨拶的な文章は、なにも書いていません。 単純な修正だし、とりあえずコミットメッセージだけは英語で書いたので、これで分かってもらえるだろうなと。 「ハーイ、わたしは日本に住むエンジニアーのマツオデス、いつもプラグインを便利に使わせていただいております、さて、今回、以下のような修正をしましたのでよろしければご査収のほど……」とか、考えてたらめちゃくちゃ時間かかりそうだし、相手にとってもまどろっこしいだろうなあと思いまして。


二日後、無事、プルリクエストを取り込んでいただけたようです。うれしい。 今後、バージョンアップも気兼ねなく行える。ありがたい。


何事も最初は緊張するもんだと思いますが、 何事もとりあえずやってみればいいと思った。 おわり。

Qiita デビュー、gulp デビュー

qiita gulp

Qiita のイベントに行ってきた

東京出張とタイミングが合ったので、9/11 のイベント、Qiita Meetup に参加してきた。やはりいろいろ刺激的。

Qiitaステッカー

ステッカーもろた!

参加者のみなさんと名刺交換させてもらったら、3人に1人はベンチャーの社長さんとか役員さん。トーキョーすごい。

gulp デビューした

複数メンバーでビルド環境揃えようと思ったら、やっぱり grunt とか gulp とか必要になるよねえ。 (今までは各自が IDE内蔵のツールとか、GUIツールとかをバラバラに使っていた)

個人的には grunt よりも gulp の方が設定を書きやすいというか、馴染みやすいように思えた。まあ、大して複雑なことをさせる予定はありません。

Qiita デビューした

gulp でいろいろ不明点を調べていたので、せっかくですからと Qiita にメモするようにした。 ささっと markdown で書けるのはうれしいし、kobito から直接アップロードできるの、便利だなあ。

とりあえず以下の2つ、書いてみています。

Chrome Developer Tool のフォントサイズを大きくする

chrome

Chrome の Developer Tool では ⌘- でフォントサイズを小さくできますが、大きくするショートカットがパッと見つからなかったのでメモ。

⌘^ で、フォントサイズを大きくすることができます。

(他のエディタでよくある ⇧⌘- とか ⇧⌘; とかのショートカットを色々ためしてはうーん、ってなってたので……)

なお、元のフォントサイズに戻すのは ⌘0 で。