iPhoneとかMac bookとかで一度表示された画像が数秒で消えてしまう現象

つくったサイトがすぐに画像が消えてしまうと言われ、初めて気づいたバグ・・。
日本語で調べてもなかなか答が見つかりませんでした。

原因はretinaディスプレイで画像がきれいに表示されるためにそもそも入っていたスクリプトのコンフリクトでした。
retina.js
コイツだったっぽい。

http://stackoverflow.com/questions/21440559/simpleimage-php-images-disappearing-on-iphone-ipad

ここに、さらっと答が書いてありました。
読み込みをしなくしたらおかしな現象はなくなりましたw

こんな現象になっている人、あまりいないと思うけど、一応覚え書きとして保存。

ACFとqTranslateのコンフリクト回避のおぼえがき

日本語と英語のサイトを構築する時によく使うのがqTranslateというプラグイン。
一つの投稿に対してマルチランゲージでデータを作れるので便利なのですが、もう一つ便利に使っているのがAdvanced Custom Fields

クライアントが簡単にデータを更新できるように作ることが多いので、今回の案件ももちろん使おうとしていましたが、なぜか設定した項目が管理画面で表示されない。
もろもろ調べたところ、どうやらコンフリクトがあるらしく、コードを書き換えないと動かないと。。
ただ、そうなるとプラグインがアップデートされた時にまた上書きされてしまう可能性もあるので、悩んでいたタイミングでバッチリのパッチプラグインがでました。

http://wordpress.org/plugins/acf-qtranslate/developers/
その名も「ACF qTranslate」。
これを使ったらバッチリ動くようになりました。
多分、ACFか、qTranslateのどちらかがアップデートされたら解消されるとは思うけど、本当に助かりました・・。
現時点で最新版のWPと最新版のプラグインの環境で動きます。

Advanced Custom Fieldsでフィルター&ソートのおぼえがき。

毎度毎度このAdvanced Custom Fieldsプラグインにはお世話になってるのですが、久しぶりにハマったのでメモ。

クライアントのサイトで、西暦、日付、タイトルの一覧を作る必要があって、それを西暦ごとに別々に一覧を用意し、日付でソートしたかったんだけど、なんでか思ったとおりにソートされず、、数時間悩みました。

表示させるページはcategory.phpなので、データの中身自体はcontent.phpで、loopさせることになります。
一覧させるのでtableかdlで囲うので今回は気分でtableつかいました。
content.phpの中身はこんなかんじ。loopするので<table></table>の部分だけcategory.phpに書きます。

<tr>
	<th><?php $date = date_create(''.get_field('日付の変数名').'');
	 echo date_format($date,'Y/m/d'); ?></th>
	<td><a href="<?php the_field('link_url',$post_id); ?>" target="_blank">
	<?php the_title(); ?></a></td>
</tr>

ここは普通にACFの使い方でOKなのだけど、これだけだとズラズラっと全部がでちゃうので、年号ごとにブロックで表示できるようにしたかったわけです。

気分的にはまず年号でフィルタした後に並び替えをするものだと思ってたので、そう書いていましたが、見事に逆でした。考え方としては並び替えた後に年号でフィルタするようです。なんだか処理が重そうですが、そうみたいです。

無事に出力できたコードはこちら。

<?php
/* Start the Loop */
// args
$args = array(
	'meta_key'		=> '日付の変数',
	'order'			=> 'DESC',
	'showposts'		=> 30,
	'orderby'		=> 'meta_value_num',
	'meta_query'	=> array(
		'relation'	=> 'AND',
		array(
			'key'		=> '西暦の変数名',
			'value'		=> '2013'
		)
	)
 );
// query
$wp_query = new WP_Query( $args );
while ( have_posts() ) : the_post();
	get_template_part( 'content', 'cat' );
endwhile;
twentytwelve_content_nav( 'nav-below' );
?>

meta_keyで日付の変数を入れて、orderで並び替え、showpostsで30件を指定。
relationでANDの指定をして、追加の条件を入れます。試してないけど、”AND”じゃなくて、”OR”にすれば複数条件での指定もできるはず。

keyに西暦の変数名を入れたらvalueで取り出したい値(今回は2013年を取り出したかったので、ACFで西暦のフィールドに2013とはいっているもの。)を指定します。
その下はループのデータを引っ張る部分なので、特に変更なし。今回はcontent-cat.phpというファイルからデータを引っ張ってきているので、「get_template_part( ‘content’, ‘cat’ );」としてるだけ。

本当は、西暦も入れた状態で普通に一覧をすればこんなこと必要ないけど細かいデザインの問題で、今回はこの方法。