ヤバイヤバイ

自前サーバのphp更新しようとしてバックアップ取って作業したら本番サーバやった。

しかも失敗してて慌ててバックアップに差し替え。

いや〜思い込みってのは恐ろしいもんです。

ssh時プライベートipは必ず確認しよう。

AWSのCloudFrontに既存のWordPressサイトを組み込ませる

ここみててなるほどと思ったので試してみた。

WordPressサイトをCloudFrontで配信する
http://qiita.com/Ichiro_Tsuji/items/38592e737257cb45ca13

で、
AWSのCloudFrontに既存のWordpressサイトを組み込ませるのにちょいと試行錯誤してみた。

目標:現サイトのドメインでcloudfrontに接続させる。

現サイトはsub.hoge.comとした場合の流れ。

  1. httpconfのVirtual Hostから、ServerName”sub.hoge.com”を”sub-cloud.hoge.com”に変更
  2. serverをリスタート
  3. Route56のhostzoneに”sub-cloud.hoge.com”を追加、EC2のIPを指定
  4. wordpressのsite URLを”sub-cloud.hoge.com”に変更
    先のURLではhomeURLも変更とあるけど、変更したらログインできなくなったのでそのままでやってみている。
  5. cloudFrontのオリジンに”sub-cloud.hoge.com”を追加
  6. cloudFrontのCNAMEsを現サイトの”sub.hoge.com”に変更
  7. Route56のhostzoneに”sub.hoge.com”をエイリアスに変更、cloudFrontのDomainName追加

これでとりあえず稼働中。
爆速や!

AdvancedCustomField:wordpressでカスタムフィールドを使って投稿に紐づいた動画を取得して一覧で表示させる。

WP_Queryを作ってwp_oembed_getでコードを出力、あわせて出力コードを加工する感じ。
あとはレスポンシブをどうするかやなぁ。
にしてもAdvancedCustomField便利だなぁ。

$args = array(
			'post_type' => 'hoge',  // カスタム投稿タイプの名前
			'meta_key'=>'movie_url',     //カスタムフィールドのフィールド名
			'meta_value'=>'null', //カスタムフィールドの値
			'meta_compare' => '!=' //空ではない
		);
	$the_query = new WP_Query($args);
	/*movie_urlの含まれるカスタム投稿から動画のみ抽出 */
	if($the_query->have_posts()){

	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		get_the_title($post->ID);
		$url = get_field("movie_url", $post->ID);
		$embed_code = wp_oembed_get( $url, array( 'width' => 320 ) );//とりあえずembedタグ上でサイズを決めておいた
		$embed_code = preg_replace("@src=(['\"])?([^'\">\s]*)@", "src=$1$2&showinfo=0&rel=0", $embed_code); //コードを整形、第二引数でお好みのスイッチつける
		echo $embed_code;
	endwhile;

参考
WordPressで、カスタムフィールドが特定の値の記事のリストを作成する

wp_oembed_get:WordPress私的マニュアル

Modify Youtube Oembed URLs to remove showinfo and more

横スクロールが必要なデカイ画像のときに重宝したjQueryプラグイン

どうにもこうにもでかい画像にイメージマップ仕込むといううことになって、
スマートフォンならピンチなりで拡大したりドラッグできたりと、直感的な操作ができるけど、
PCだとキーボードとマウス組み合わせて動かさなきゃなので使いづらいことこの上なし。
なんかええ方法ないかいなと探っていると見つけた。ドンピシャ。

【JavaScript】ドラッグ可能な横スクロールを実現するkinetic.js【プラグイン】
http://davetayls.me/jquery.kinetic/

開発元はこちら。
http://www.p-nt.com/technicblog/archives/140

wordpressをダンプで移行時、Call to undefined function wp_register_plugin_realpathエラー

wordpressをダンプで移行時、Call to undefined function wp_register_plugin_realpathエラーが起きた。

ググって見るとAdvanced Custom Fieldsプラグインにてレジストされたプラグインを利用している場合に発生するようなので、移行元のMysQLからダンプ準備する際にプラグインをいったんはずし、ダンプ作成。

その後移転先にエクスポート、改めてプラグインを有効にすることで回避可能ー。

dreamhostのone-click installsにしてやられた

dreamhostのone-click installsはDBも一緒にセットアップしてくれる上、
アップデートも自動でしてくれるので頼もしいのだけど、
Dreamhostに設置しているCMSのインストールディレクトリを先日軒並み変更していたら、
当然のごとく自動アップデートは登録されたディレクトリに対してアップデートかけるわけで。

個人管理のサイトが軒並み初期化。

ということで、Dreamhostのone-click installされたリスト確認して
自動アップデートはNotifyだけにして、
今後は手動で。

dreamhost one-click installs
Dreamhost one-click instals

まあ、このリスト画面でインストール先変更とか出来ればええのやけど、
それはそれでまずいわな。

まあ、手動で戻せばいいのやけど、問題はそのもどさなならん数やな……

ほえほえ

Googleアナリティクスのアドバンスフィルタで正規表現を使う

業務の中でgoogleAnalyticsの集計時にアドバンスフィルタ使うことがあるのやけど、
抽出条件がややこしいと、条件を一杯追加する形になってめんどくさかった。

で、正規表現使えないのかと調べると、やっぱり使えた。
プルダウンで正規表現一致を選択すればいいのやった。
googleanalytics_Regex

あとはカンペみて式考える。
アドバンス フィルタ 正規表現

アイキャッチ画像に外部サービスから直接展開させる

アイキャッチ画像に外部サービスから直接展開させる
http://wordpress.org/extend/plugins/remote-images-grabber/

基本的に登録したアドレスから画像を自サイトにもってくるプラグイン。
なのでアイキャッチに追加したい場合、一度画像ダイアログ表示して、
grabber経由でサイトにダウンロード。
その後メディアライブラリタブから該当する画像を表示させてアイキャッチに設定。

解説
http://www.dekipaso.com/info/thumbnail-for-excerpts.html

つっても毎回登録するのはめんどくさいので、投稿から自動取得するものないかと
探すとこちらが。
auto post thumbnail
http://wordpress.org/extend/plugins/auto-post-thumbnail/
201208現在Fixされているかもしれなけど、3.4上でバグ顕在化とのこと。

facebookページにコンテンツ追加する方法 覚書


facebookからiflame内コンテンツ連携するのはhttpsでの接続が必要。

アプリのiflame内での追加に関して仕様変更。
現状はアドレスから直接打たないと追加できない形に。
http://www.koikikukan.com/archives/2011/12/15-015555.php

https://www.facebook.com/dialog/pagetab?app_id=アプリのID&display=popup&next=接続先URL

wordpresのリダイレクトプラグインを不許可にする必要

WordPress側でテンプレート用意(リンクはさせない場合)
?fb=facebookで読み込むテンプレート指定

/******* facebook ファンページ内用 ******/
if($_GET[“fb”] == “facebook”) {
//facebook iframe用テンプレートを読み込み
get_template_part( ‘facebook_iframe’ );
exit();
}

facebook_iframeテンプレートを用意する。
場合によってヘッダー、フッター、CSSを準備。

そんなこんなでまさぐってみた。
http://www.facebook.com/pages/DMT/198730220168420

wordpressにて日本語の入力ができない:解決

サーバーによってはmbstring.internal_encodingがEUCになってる場合があり、
そんな時はutf8のエンコードのwordpressからは日本語登録ができない模様。
解決策としてはphp.iniでmbstring.internal_encoding= UTF-8
を設定してやる。
※htdocsディレクトリでphp.iniが置ければの話し。
無理ならhtaccessで試すこと。
でも、他のプログラムが走ってたら解決策は変わるやろな。

参考
http://ja.forums.wordpress.org/topic/100
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%92%B0%E5%A2%83php.ini%E8%A8%AD%E5%AE%9A

日本語webfontの作成

英字なら以下のサイトで可能やけど、日本語は無理のよう。

http://www.fontsquirrel.com/fontface/generator

なので以下のツール使う。

WOFFコンバータ
http://musashi.or.tv/woffconv.htm

 

書き方は

CSS

@font-face {
font-family: ‘***********’;
src: url(”***********.eot’);
src: url(”***********.eot?#iefix’) format(‘embedded-opentype’),
url(”***********.woff’) format(‘woff’),
url(”***********.ttf’) format(‘truetype’),
font-weight: normal;
font-style: normal;
}

 

で、ソース側は

<style type=”text/css”>
body{
font-family: ”***********’;
}
</style>

つう感じ。

翻訳プラグイン

WordPressの翻訳プラグインとしてはこんなのがある。

Worldwide Lexicon Translator

Transposh

http://blog.shojimiyata.com/web-service/plugin-transposh.html

Global Translator

Global Translatorがよさげだが、
http://ja.forums.wordpress.org/topic/1389

23か国語対応のWordPressプラグインGlobal Translatorを使ってみた その1

キャッシュも可能だが、サーバによっては問題有り
モジュール版PHPでのファイル・ディレクトリ作成で所有権元の変更が必要coreserverではめんどくさい。
http://ja.forums.wordpress.org/topic/1389