WordPress メモ, 2nd GIG

テーマ:Imbalance 2

少し前からjQuery Masonryを使ったテーマに乗り換えたいと思って、色々と試行錯誤していて結局、Wpshowerにある、Imbalance 2 に決定。

勿論このままでは使えないので色々と修正…したいのだが、テーマの各ファイルを見て目が点になったと言うか、「あー今はこういうカンジでテーマ構築するのかー」と。

今まで使っていなかったアイキャッチ画像を使い始めた。
元々テキストがメインのブログだったのだが、アイキャッチを使う事で多少賑やかになった気がする。
…けど、統一感が無いんだよなぁ…

2011/09/10

ソーシャルブックマークボタン設置

このブログは大本営サイトなので、コメント機能は外している。
とは言え、全く何も無いのは寂しいので今回、ソーシャルブックマークボタンを設置してみた。

プラグインを探せば当然あるが、個人的に、「Twitter」「Facebookいいね」「mixiイイネ!」「Google+」が欲しかったので、jQuery.socialbutton をテーマファイルに直接記述。
尚、Imbalance 2テーマにも、「Twitter」「Facebookいいね」が追加されているが、ちょっとそこに追加するのはしんどそうなので、完全書き換えした。

そこで生じたのが、ボタンのずれだった。

□□ □
  □

…みたいなカンジで、対応に悩んだが、よくよく追いかけると、テーマファイルのCSSの(例えば)イメージ属性が、ソーシャルブックマークボタンに継承されているんだなぁと。

で、個人的にはカウント件数不要だし、ボタンも各サービスオリジナルのを使わず、統一したいのだが、全てを統一デザインで作成されたアイコンが存在しないため1 、pend。

2011/09/20

尚、例えば「ASCII.jp:Facebookの「いいね!」で売上は増えるのか?|清水 誠の「その指標がデザインを決める」」にあるTweetボタンを押下すると…

Facebookの「いいね!」で売上は増えるのか? #asciijp http://ascii.jp/e/626339/ via @asciijpeditors

…と、ハッシュタグが付加されている。
ところが、jQuery.socialbutton のTwitterボタンの引数の仕様には、これが無いため、text引数に強制的に追加した。2

$('.tweet').socialbutton('twitter', {
  button: 'none',
  lang: 'en',
  text: '<?php wp_title('|', true, 'right') . bloginfo('name'); ?> #ut_works',
  via: 'dollplayer2501'
});

2011/10/08

緊急事態の発生:サーバデータ消失…

個人的には、このレンタルサーバ会社を風評被害に晒す必然性を感じないので3 、何があったのか、どういう原因だったのか、という様な情報は書かないが、結論的には、サーバ上のデータが全て無くなった。
更に最悪な事に、レンタルサーバ会社が独自にバックアップしていたデータも実はダメでしたという、如何とも遺憾な報告。
ファイル・MySQL・メール設定・他の設定等々、全て綺麗になってしまい、障害発生→復旧した時は、「まるで新規契約して、初めて管理者ログインしたみたいな」状態…正確には「まるで」は不要…だった。

ここで「こんなこともあろうかと」と言えれば良いのだが、残念ながらここは個人のヌルいサイトなので、バックアップなんて取ってる訳が無い。4

その後、本年2010年5月時点のバックアップが見付かり5 、リストアしたけど、何か変な挙動なので、特にMySQLに関してはデータベース削除、再構築を行なった。
と、その前に、MySQLのダンプは取得したが。
それを元に、目ぼしい記事をアップしている最中。

これ、仕事だったら、間違い無く社会的信用を失う所だったが6、趣味でやってるサイトなので、ショックは大きかったが7、まぁ、笑って済ませる話だけど。
なので、もう少しバックアップ&リストアに関して、本腰入れないといけないなと思った次第。8

2011/09/16

自分にとっては、投稿本文の入力は、テキストエディタで書き、テキストファイルとして保存して wp_update_post を独自に発行(現在問題発生中だが)するのが一番楽かなぁと。
ローカルに記事が保存されるので、もしもの場合に比較的復旧が楽なのと、全ての投稿を縦断的にちょこっと更新する必要がある場合、楽なので。
ただしお勧めはできないが。
まず、とりあえずの記事をWP管理画面で投稿して、IDを確定させる。
と同時に抜粋・アイキャッチ・カテゴリ・タグを設定。
その後、管理画面で入力した投稿本文をテキストエディタで管理して、以降の更新はテキストファイル更新、FTPアップロード、wp_update_post 発行なので、とてもお勧めできない。
尚、投稿に付属する画像は、WP管理下に置かず、独自のディレクトリを切ってそちらにFTPアップロードしている。
結局自分はブログとしてWPを使っておらず、システム上は「投稿」区分で記事を書いているが、ある投稿に対する追記が多いので、どちらかと言うと「ページ」区分で投稿した方が良いんじゃないかと思わなくもない。

な訳で、とても人様にWPを勧められない状況。

2012/05/06

抜粋に関して何となく

あくまで、何となくの経験則だが…

各投稿で抜粋を設定せず、the_excerpt() にて出力すると、 <!--more--> まで、それも設定していないと、(多分orデフォルト)日本語110文字まで出力しつつ、strip_tags() している。

各投稿で抜粋を指定する場合、アンカータグだけでなくイメージタグ9 等の各種HTMLタグも使える。10
更に、この場合、各投稿ページには反映されない。
…という法則を利用して、抜粋イラネ、という記事に関しては、抜粋に &nbsp; のみ設定するとか。

2011/10/09

タグクラウドページ

昨今の数多くのWPテーマにおいては、ウィジェットでタグクラウドを実現していると思うが、現在利用している Imbalance 2 においては、何と、ウィジェットが使えない。
なので、functions.php に下記のショートコード用の関数を記述して、WordPress側で新規ページを作成して、そのショートコード([sc__tagcloud])を記述にて対応。
引数によってフォントサイズ変えるとかぐらいは追加したいものだが。

function fnc_tagcloud() {
  wp_tag_cloud('smallest=8&largest=16&number=0&orderby=name');
}
add_shortcode('sc__tagcloud', 'fnc_tagcloud');

2011/10/09

WordPressをバッチ処理的に何かする場合のベース

元々自分はバブルの頃のSIer出身なので、インターネット台頭以前、C/Sの時代、ジジイ共が「ネオダマ11」と呪文の如く唱えていた頃は、オンライン処理よりも、ある意味、(夜間)バッチ処理の方に重点を置いていたんじゃあないかと思う。
ところが数年前、Web系に自分が宗旨替えして以降、全くバッチ処理が出て来ない。
たまに聞こえるのは、3.11後に、とある銀行が大迷惑を掛けたりとか。
Webは元々リアルタイムを旨とするのか、実は裏で小人さんが頑張ってるのか良く分からんが。 12

昔話はともかく、WordPressというフレームワークを使いながら、WordPressのトリガ…基本的には、誰かがWebからWordPressを呼び出す…以外からWordPressの仕組みを利用するコーディングに関して、WordPress プログラムからテストデータ作成 – 130単位 より抜粋。
例えば、下記のコーディングは、全くWordPressとは関係無いタイミングで実行可能。
cronなりWebなり好きなタイミングで実行できる。

$wp_root = '/foo/var/';
if (file_exists($wp_root.'/wp-load.php')) {
  require_once($wp_root.'/wp-load.php');
} else {
  require_once($wp_root.'/wp-config.php');
}
require_once(ABSPATH.'wp-admin/includes/post.php');

// 以下、例

$my_post = array();
$my_post['ID'] = 123;
$my_post['post_content'] = 'この本文は更新されました。';
wp_update_post($my_post);

ちなみに、自分がこの方法を確立していなかった頃…今だ今。今発見して試してみたので…、直接テーブル更新していた…非道い話だと思う。

$conn = mysql_connect('server', 'username', 'password') or die(mysql_error());
mysql_select_db('database_name') or die(mysql_error());
mysql_query("SET NAMES utf8") or die(mysql_error());

 : 色々処理

UPDATE `wp_posts`
  SET `post_content` = 'boofoowoo',
      `post_excerpt` = 'hogehoge',
      `post_date` = 'Y/m/d H:i:s',
      `post_date_gmt` = 'Y/m/d H:i:s'
 WHERE `ID` = xx;

$rs = mysql_query($sqlstring);
echo "result " . mysql_affected_rows();

mysql_close($conn);

つか、WordPressがよく壊れなかったなぁと。13

2011/10/09

wp_update_post を直接発行した場合、iframeタグ、Youtube埋め込み、ニコ動埋め込み、他、おそらくはJavascriptなど、無効になっている模様。
Youtubeは ショートコード、かつ、Wordpress側の設定変更でどうにかなる。
ニコ動に関しては、ショートコードを作成。
どうにもなってないのがiframe。
通常の管理画面からは入力できるので、その動きを wp_update_post でトレースしてやれば良さそうに思えるが。
もしくは、現在自分の functions.php に記述している。

function extended_enable_elements($init) {
  $init['extended_valid_elements']="iframe[src|width|height|name|align|style|scrolling|marginwidth|marginheight|frameborder]";
  return $init;
}
add_filter('tiny_mce_before_init', 'extended_enable_elements');

wp_update_post しているコードに追加してやれば良さそうなのだが、うまく動いていない状況。
困った。

2012/05/06

投稿一覧ページ

自分は年月の一覧って不要じゃないのかと以前に書いた記憶がある。
勿論、何等かの一覧はあった方が良いと思うが、その切り口として年月というのはどうだろうかと。
とは言うものの、さして深く考えた訳では無いのだが。

かつて、WP SIMILE TimelineSnazzy Archives と使ってきた。
WP SIMILE Timeline は、その時に使用しているテーマが反映された年表形式に表示されるので悪くは無いのだが…
Snazzy Archives は、見せ方の勝利、かと思うが、どうもユーザインタフェースが…
…と何だかんだ言いながら結局使うのを止めてしまっていた。

ところが先日別件でネットを彷徨っていて見付けたのが WP Facebook Timeline (MF Timeline) で、結構キタコレな状況。
インストール、設定画面(MF-Timeline Options)の Include content from: にて、表示したいコンテンツ(投稿・固定ページ等)を選択14 、ページを追加するなりしてショートコード [mf_timeline] を埋め込む。
するとまるでFacebookのタイムラインみたいに表示されるという。
他の機能としては、投稿扱いにはならないが、Timeline Stories にて、一言コメントみたいなカンジで投稿ができる。
ここには、yyyy/mm/dd、タイトル、画像等メディア込みの記事が投稿可能。
尚、表示には投稿の抜粋を最優先で表示している模様で、抜粋が存在しない場合、結構な文字数をsubstrしているっぽい。

自分の場合、投稿が少ないのと、(2012/04時点で)テーマに Imbalance 2 という jQuery Masonry ベースのテーマを使っているので、そもそものトップページが一覧の役割も兼ねているので、あまり有り難味が無いかもしれないが。
また、もしかしたら今現在は使えないかもしれないが、Facebookのタイムライン風のWordPressのテーマファイル -Timeline WP | コリス というのもあるみたいだが。

ちょっと不満があるとすると、アイキャッチが表示されていないこと15 、微妙な上下関係が表現できていないトコロか…まぁFacebookでもそこまで厳密に表示されていないか。今まで気にした事が無かったけど。

とは言え、取り敢えず飽きるまで使う予定。

2012/04/13

Footnotes

  1. 1. あと、Google+の独自ボタンの使用法が良く分からんかも。どこかで見た記憶があるが。

  2. 2. 通常は何も設定しなくとも、ブログ名・タイトルなどが設定される。

  3. 3. どうしても、と言うならばドメインから勝手に調べてもらえれば。

  4. 4. 自慢げに言うなよ。

  5. 5. 騒動が起きたのが9月末だったのであまり嬉しくはなかったが…

  6. 6. 実際、レンタルサーバ会社に乗り込んで来たヒトも居るみたいだ。

  7. 7. とは言え、いずれサーバコンテンツの整理を行なう必要があったので、良いきっかけになったが。

  8. 8. 多分バックアップまでは行なったとしても、リストアまでさくっと行なえるかどうか。

  9. 9. 今、ダメ元でトライしてみたらできた。

  10. 10. 自分の場合、引用タグを多様している気がする。

  11. 11. 大 爆 笑

  12. 12. 物凄く前、Insertトリガでログを生成、そのログを夜中にストアドでバッチ処理する、という仕組み作った事があるが。

  13. 13. キャッシュとか使ってたらマズかったんじゃないか?

  14. 14. この選択をしておかないと、何も表示されない。

  15. 15. 後日潜って表示できるようにするかもしれない。