WordPress画像挿入時動作のカスタマイズ

投稿日:

 愛用中のWordPress。書きやすいし、気に入っている。

 しかし、記事に画像を挿入するときの動作が気に入らない。WordPressの画像の挿入機能は、タテヨコをimgタグのwidth・height両属性で書いてくる。つまり

「<img …… width=”320px” height=”240px” …… >」

……というふうに書きこんでくるのだが、これが気に入らないのである。

 これだと、ブラウザのウィンドウ・サイズなどを変更したり、モバイルや携帯で表示させたときに画像がハミ出したり、周囲の文字が収まりきらず、おかしな具合に画面が散らかったりしてしまう。リサイザブルでないわけである。ここは

「<img …… style=”width:50%;” …… >」

……等であってほしい。こういうふうであれば、ウィンドウのサイズを小さくしたブラウザで表示しようが、携帯やモバイルで表示しようが、必ず表示領域の半分の大きさで画像が表示されるわけである。

 しかし、現行のWordPressはそういうふうにはなっていないし、そういうふうにユーザ設定を追加する機能もない。

 それで、画像を挿入するときには、毎回この「<img …… width=”320px” height=”240px” …… >」というタグの「width……height……」というところを手で削り、「style=”width:50%;”」と書き直していた。

 しかし、毎回毎回、じつに面倒臭い。

 そこで、意を決してカスタマイズした。

 この「width」「height」を書き込んでいるのは、WordPressインストールディレクトリの下の「wp-admin/includes/media.php」というファイルである。

 このファイルの末尾に、次のように書き加える。

function remove_hwstring_from_image_tag( $html, $id, $caption, $title, $align, $url, $size ) {
	list( $img_src, $width, $height ) = image_downsize($id, $size);
	$hwstring = image_hwstring( $width, $height );
	$html = str_replace( $hwstring, ' style="width:50%;" ', $html );
	return $html;
}
add_filter( 'image_send_to_editor', 'remove_hwstring_from_image_tag', 10, 7 );

 これで、邪魔くさいwidth・heightの代わりに幅50%のスタイルが無理やり書き込まれる。

 この改良に当たり、次のサイトを参考にさせていただいた。

 ただ、これをやっちまうと、WordPressのアップデートがあるたびにこのファイルをカスタマイズしなければならないわけである。うーん。……ま、いいか。

スタイルシート書き

投稿日:

 このブログの「blockquote」のスタイルが気に入らず、子テーマで書き直したら、今度は「ul」とか「li」なんかのスタイルも気に入らなくなり、だんだん際限がなくなってきて、いっぱい書き直すなど。

 WordPressは思ったようにCSSが作れて、いいなあ。

ブログのフォントなどが気に入らないので

投稿日:

 このブログのフォントにプロポーショナルフォントが使われたり、一部に英文フォントなどが使われてしまったりするのが気に入らず、カスタムCSSを使っていた。だいたいうまくいっていたものの、細部においてどうも思ったように行かない。

 私は段落の行頭を1文字空けるのに、どうしても全角スペース1文字を使いたいし、また、字詰めが等幅フォントでないと嫌なのだ。これを言うと、スタイルシート原理主義の人は「文章のセマンティクスに関係のないレイアウト情報はスタイルシートに切り分けるべきだ!」などと言って怒鳴りだすので、どうにも辟易する。

 以前、Wikipediaに書いたある項目で、段落の行頭を全角一文字空けていたら全部削除され、なにかの間違いかなと思ってもう一度空け直したら今度は激しく叱られた。「そういうことがやりたいんだったら自分のユーザスタイルシートに書けやオッサン、コラ、ああ?!」と言うのである。

 それに関するこういう議論の主流の主張を読んでいると、もう、狂信的と言うか、アタマおかしいんじゃないだろうかとすら思えてくるのだ。

 いや、わかります。わかりますよ、言いたいことは。私も技術者の端くれですんでね。言う事はわかりますがね。……そうはいうものの、ですね……。プログラムのソースコードじゃねえんだし、ましてや裁判記録や法律の案文じゃないんだし、そんなにキリキリカリカリすることないでしょうが、と思う。

 そんなこともこれあり、このブログについては、意を決して「子テーマ」というのを書いてみた。WordPress特有のカスタマイズ機能だ。

 WordPressの子テーマは、テーマのサブディレクトリ並びに適当なディレクトリを掘り、そこに「style.css」「テンプレート・ファイル」「function.php」の3つを、それぞれある一定のルールに従って記述・配置すればよい。

 私は和・欧文ともに等幅の明朝体が使いたいので、「style.css」の「font-family」の記述を全部書き直して、一丁上がりである。

段落の行頭の字下げ

投稿日:

 日本語の文章は段落の行頭を一文字下げるが、ウェブやIT業界の人はなぜかこれを嫌い、「そういうのはムダ」「文字列のセマンティクスに関係のないことはスタイルで表現すべき」などと言って、これをやめさせようとする。

 「ためにする議論」の代表であると思う。コンピュータ屋のおせっかいであり、余計なお世話である。

 今この文章にしてからが、WordPressの余計な機能により行頭の字下げを無視されている。