2014 謹賀新年

2014

これからも細々と宜しくお願い申し上げます。


[WordPress小ネタ] 特定のタグを設定した時、投稿表示の前に確認文言を表示する

制約のあるコンテンツを表示する前に、確認事項の同意をとっておきたい時などに使えるかもしません。
single.php の the_content() の部分を下記の具合に変更し、

if(has_tag("foo")) {
	if(isset($_COOKIE["hogehoge"])) {
		the_content();
	} else {
		※ 確認文言 ※
	}
}

この確認文言の中のどこかに、下記のようなcookieをセットするJavaScriptを入れ、クリックを促します。

<a href="javascript:void(0);" onclick="document.cookie='hogehoge=1';location.reload();">確認事項に同意します</a>

きちんとcookieがセットされれば、the_content() が表示されるはず。

» サンプル


cookieテスト


[WordPress小ネタ]ページスラッグとユーザIDが同じ場合のみcontentを見せる方法

WordPressのフォーラムを潜ってたら下記のスレッドを見かけて、ちょっと試してみました。

ユーザー名「hogehogesan」が居たとして、
WordPressの固定ページでスラッグ名「hogehogesan」を作成。
http://example.com/hogehogesan/

page.php の get_header(); の前に、auth_redirect(); を入れて、強制的に認証させておき、
the_content() の所を下記のようにしておけば、上記固定ページはユーザー名「hogehogesan」のみ閲覧でき、他の人は「hogehogesanさん専用ページです」と表示されるというもの。

global $current_user;                  // ログインしているあなた
get_currentuserinfo();                 // あなたの情報を取得
$uname = $current_user->user_login;    // ユーザー名を取得
$slug = get_page($page_id)->post_name; // このページのスラッグを取得

if($uname==$slug){  // ユーザー名とスラッグが一緒ならcontentを表示する
	the_content();
} else {            // 違ったらエラー表示
	echo $slug."さん専用ページです。";
}

パスワードは管理者が固定ページに設定するのではなく、ユーザーごとに管理してもらった方が、漏れた時に管理者の責任が多少は少なくなるという考えなので、こんな塩梅が良いのではと思った次第です。


平成25年 元旦

謹賀新年


小ネタ:jQueryを用いて任意の要素の高さを揃える

最近ちょいちょい使うので、備忘録として。
複雑な事をせず全部の高さを揃えたいだけなら、たぶんこれで充分。

$(document).ready(function(){
	var _h = 0;
	$("任意の要素").each(function(){
		var _this = $(this).height();
		if( _h < _this ){
			_h = _this;
		}
	}).height(_h);
});

$(document).ready() で期待通りに動かない時は、どこかにheightを設定していない画像があったりするので、その場合は
$(window).load()
とか
jQuery.event.add(window, “load”, function(){ …… })
とかにして、全ての描画が完了してから発火すると良いです。整形がちょっと遅れるけどしゃーない。
でもjquery.tile.jsの方が絶対便利。


うっかり

メンテ中のままにしてました…(;´Д`)
中身いじってただけで更新は何もありませぬ。


WordPress小ネタ:記事の表示範囲を会員/非会員の区別によって任意の位置で区切る

旧聞ですが最近使ったネタをば。
日経やasahi.comみたいに、会員と非会員で表示を分ける方法。

普通は single.php に

<?php
if(is_user_logged_in()):
	the_content();
else:
	the_excerpt();
?>
<p>この記事は会員限定です。 ……………</p>
<?php endif; ?>

みたいにするわけですが、興味を引きつけたい記事なのに先頭から○○文字とかで自動的にぶった切られてしまいます。できれば <!-- more --> の位置まで見せたい。

そういう時は、単体記事ページでも more の動作を使うためのひと工夫を。

Function Reference/the content :: Overriding Archive/Single Page Behavior
http://codex.wordpress.org/Function_Reference/the_content#Overriding_Archive.2FSingle_Page_Behavior

<?php
if(is_user_logged_in()):
	the_content();
else:
	global $more;
	$more = 0;
	the_content('');
?>
<p>この記事の続きは会員限定です。 ……………</p>
<?php endif; ?>

みたいな内容を書けば、非会員の会員登録を誘引できそうな位置で、記事を一旦切ることが出来ると。便利便利。


MacBookPro Mid2010にSSD入れてみた結果

今更ではありますが、こんな塩梅に。
Xbench測定結果


WP Social Bookmarking Lightのはてブボタンを行動情報取得しないものに変更する

WP Social Bookmarking Lightが3/11にアップデートされ、行動情報を取得しないものに更新されてました。

1.7.1
Updated: replaced script of hatena to no tracking version.

以下古い記事 orz

対象者

WP Social Bookmarking Lightを利用してソーシャルボタンを設置してる人

変更対象ファイル

設置ディレクトリ/wp-content/plugins/wp-social-bookmarking-light/modules/services.php

変更箇所

92行目
変更前:bookmark_button.js
変更後:bookmark_button_wo_al.js

簡単ヽ(´▽`)ノ
アップデートの際にはその都度確認を。