Advent Calendar 12月5日分 – WordPress の ”P” は大文字で !

こんにちは、立花です。

以前、ポッドキャストでお邪魔したことがありますが、今回は有料会員制サービス Club Capital P のメンバー特典として「Capital P Advent Calendar 2017」の2017年12月5日分の記事を寄稿します。

どうせ寄稿するなら本サイト「Capital P」と関連するものがいいなと考え、普段は明示的に使わないけど、実は裏で大活躍している (かもしれない) WordPress 関数を紹介します。

本題前の振り返り

本題に入る前に Advent Calendar っぽく、以前の記事を振り返りましょう。

12月2日分の記事によると、WordPress 上でオンラインショッピングを実現するプラグイン「WooCommerce」と、その拡張製品を売れば、その売上の 20% 分をもらえるアフィリエイトサービスが始まったとのことです。

普通の人が WordPress のプラグインの拡張製品と聞けば、「へぇ、世の中にはそんな商売もあるんだぁ」と、軽く思ってしまいますが、驚くなかれ、その拡張製品や、WooCommerce サイト制作サービスを行う会社がこの世界にはいくつもあり、しかも WordCamp の数百万円単位に及ぶ高額なスポンサー料金を払えるほどに儲かっているそうなので、その市場規模や恐るべし。

Capital P のお三方はそれなりに権威ですので見えない責任も遠慮もありましょうが、何のしがらみもない一般人である私たちは、ありったけのアフィリエイトリンクを貼った、おべんちゃらまみれのブログ記事を書けば意外と儲かるかもしれません。ただしそのときは英語で書いたほうが効率は良さそうです。

アフィリエイトと言えば

この Capital P もアフィリエイトプログラムを始めたらしいのですが、その詳細は先程の12月2日分の記事のうち、有料会員向けの部分で説明されています。

最近の「Capital P」の記事では、この「以降は有料会員向けに以下の情報をお届けする。」と、少しイラッとする、でも、サイトを継続して運営するには仕方ないよな、という場面も多いので、年末年始の多忙な時期、イライラを少しでも解消したい方は、こちらからサブスクリプションを申し込めば幸せになれると思います(なぜか私も)。月額300円、年間2980円です。今シーズンならではの有料会員特典としてはこのとおり「Capital P Advent Calendar 2017」にも参加できます。

と、さもありがたい「特典」かのように紹介しましたが、サブスクリプションでお金を払った人に、さらにサイト内で記事を書かせて、Google Adsense の広告収入広告代を稼ぐなんて、考えてみるとすごいビジネスモデルです。アメリカのほとんどの文芸誌では基本的に原稿料はゼロで、どころか逆に掲載料を取るところも多いらしいので、そんなノリかもしれません。

さて、本題

本サイト「Capital P」と関連する、普段は明示的に使わないけど、実は裏で大活躍している (かもしれない) WordPress 関数。それは

capital_P_dangit()

「dang it」は英語で罵るときによく聞く「damn it」よりも少し弱いニュアンスで、「ちぇっ」って感じみたいです。関数名を意訳すると「WordPress の ”P” は大文字で !」ってところでしょうか。

動きとしては投稿タイトルや本文に出現する誤った表記「Wordpress」を正しい表記「WordPress」に置き換えます。これは標準で有効化されていて、誤った語は「強制的」に変更されます。そうです、強制的にです。

関数のヘルプには

Forever eliminate “WordPress” from the planet (or at least the little bit we can influence).

この世から「Wordpress」を永遠に抹殺する – 少なくともできる限りは

とあります。

試してみましょう。以下は Gutenberg エディタ内で “P” が小文字になった「Wordpress」と、すべて小文字の「wordpress」、すべて大文字の「WORDPRESS」を入力したところ。

その出力結果。

「Wordpress」だけが変換されました。

全角ではどうでしょうか? 全角アルファベットの「Wordpress」、カタカナの「ワードプレス」、そして一時期話題だった例のアレを検証してみます。

駄目ですねー。まぁ、当然ですか。ソースコードを見れば分かるように “P” が小文字の「Wordpress」以外は相手にしていません。

「Wordpress」と書きたい場合はどうするの?

西川さんから指摘いただきましたが、この capial_P_dangit() 実はいわくつきの関数でした。詳細はこちらの記事に詳しいのですが

http://justintadlock.com/archives/2010/07/08/lowercase-p-dangit

問題は2点。「ユーザーのコンテンツを強制的に変更する機能」を「WordPress のトップの Matt さんが通常のコミュニティのプロセスを経ずに挿入した」。

指摘ごもっともですね、2点とも。

「WordPress」そのものを作った Matt さんとしては、誤表記を許せなかったのだろうと推測できますが、ただ、どうしてコミュニティにその判断を委ねなかったのか疑問が残ります。商標とか絡んだ見えない問題でもあったのでしょうか? いや、それらも公開すれば済む話ですよね。

で、話を戻すと、この強制書き換え機能を無効化するには functions.php に以下のコードを挿入してフィルターフックから外すか

remove_filter( 'the_title', 'capital_P_dangit', 11 );
remove_filter( 'the_content', 'capital_P_dangit', 11 );
remove_filter( 'comment_text', 'capital_P_dangit', 31 );

またはプラグイン「Remove WordPress to WordPress filter」を使用します。

あれ?

気がついた方はいらっしゃいますか?

この記事ではずっと「Wordpress」と”P”が小文字で表記できています。強制的に変わるんじゃなかったっけ? わざわざこの記事のためにプラグインを入れたの? いいえ、違います。

「Wordpress」

と半角スペースを開けずにカギ括弧で囲まれているからです。これが二重引用符の “WordPress” (<- ここの”P”は小文字を入力しています) だとご覧のように “P” は大文字になっています。上の「関数のヘルプ」の引用箇所も置き換わっています(気づきました?)。

ある意味、国際化上の問題ですので Ticket をオープンして数年前の議論を蒸し返すのも一興かもしれません。あるいは「capital_P_dangit()」の国際対応版の作成を提案し、各言語の誤った表記、日本語で言えばカタカナ表記や全角表記を片っ端から変更してしまう、ついでに拡張機能で「富士フィルム」や「キャノン」も変更してしまっても面白いかもしれません。

新しい関数名としては

waadopuresu_dangit()

なんてどうでしょう。この世から「ワードプレス」を永遠に抹殺する想いが込められています。あ、そうそう関数のヘルプには続きがありました。

Violating our coding standards for a good function name.

コーディング規約に違反 – 良くない関数名

「dangit」は外したほうが良さそうです。Matt さん独特のユーモアなんでしょうが…。

というわけで「Capital P」にちなんだ関数「capital_P_dangit()」の紹介でした。

明日はどなた?

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください