WordPress標準のjQueryをやめて、外部のjQuery読み込む

WordPress標準のjQueryをやめて、外部のjQuery読み込むには、initフックで wp_deregister_script() を使って、標準jQueryを外して、wp_enqueue_script() で、新たに登録し直します。  

add_action('init', 'my_init');
function my_init() {
	if ( !is_admin() ) {
		wp_deregister_script('jquery');
		wp_enqueue_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', array(), '1.6.1');
	}
}

google CDN

上記の例ではgoogleのCDN(Contents Delivery Network)で、最新版は、 https://developers.google.com/speed/libraries/#jquery で確認できます。

バージョン1x系
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.js

バージョン2x系
ttps://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.js

バージョン3x系
https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.js

バージョン3x系スリム版(Ajax機能なし)
https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.slim.js

 

バージョン1x系縮小版
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js

バージョン2x系縮小版
https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js

バージョン3x系縮小版
https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js

バージョン3x系スリム版(Ajax機能なし)縮小版
https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.slim.min.js

 

jQuery CDN

本家jQueryのCDNの最新版は、 http://code.jquery.com/ で確認できます。

バージョン1x系
http://code.jquery.com/jquery-1.12.4.js

バージョン2x系
http://code.jquery.com/jquery-2.2.4.js

バージョン3x系
http://code.jquery.com/jquery-3.1.0.js

バージョン3x系スリム版(Ajax機能なし)
http://code.jquery.com/jquery-3.1.0.slim.js

 

バージョン1x系縮小版
http://code.jquery.com/jquery-1.12.4.min.js

バージョン2x系縮小版
http://code.jquery.com/jquery-2.2.4.min.js

バージョン3x系縮小版
http://code.jquery.com/jquery-3.1.0.min.js

バージョン3x系スリム版(Ajax機能なし)縮小版
http://code.jquery.com/jquery-3.1.0.slim.min.js

 

MSN CDN

MSNのCDNの最新版は、 http://www.asp.net/ajax/cdn#Using_jQuery_from_the_CDN_21 で確認できます。

バージョン1x系
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.js

バージョン2x系
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.4.js

バージョン3x系
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.0.0.js

バージョン3x系スリム版(Ajax機能なし)
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.0.0.slim.js

 

バージョン1x系縮小版
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js

バージョン2x系縮小版
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.4.min.js

バージョン3x系縮小版
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.0.0.min.js

バージョン3x系スリム版(Ajax機能なし)
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.0.0.slim.min.js

最新版確認日:2016/07/12

バージョン1x系と2x系の違い

IE8以前のバージョンまで対応しているのが1x系、 IE8以前は見捨てて、IE9以降のブラウザに対応して安定動作を優先しているのが2x系ということらしいです。

バージョン3x系の違い

3x系では、本格的にIE8を見捨ててるようです。
その他、いちばん気になったのは、Hide()とShow()の扱いの変更でしょうか。
これまで<div class="test" style="display:none;">Hide</div>としていた要素に対して、$(".test").show();で表示できた要素ができなくなる、つまり上書きしなくなるということのようです。
<div class="hide">Hide</div>として、CSSで予めdisplay:none;としておき、.removeClass("hide")のように操作するか、ready()内で、$(".test").hide()とするのがいいようです。

こちらが参考になります→http://qiita.com/fmy/items/abdeeb9abaf56058c20e

.js と .min.js の違い

中身は全くおんなじ。
圧縮されているので、コードを解読するひつようがないのなら、読み込みが軽くなる縮小版を使うべき。

.slim(スリム版) の違い

スリム版は、Ajax機能を省いたもので、軽量化されています。Ajaxは使わねぇ。って言う場合は、スリム版を使ったほうがいいですね。
で、どれくらい違うかって言うと。

  • jquery-3.1.0.js 273.8KB
  • jquery-3.1.0.slim.js 218.6KB
  • jquery-3.1.0.min.js 86.4KB
  • jquery-3.1.0.slim.min.js 69.0KB
  • ちょっとでも軽量化を。といった感じでしょうか。
0

PHP カレントディレクトリを取得する

カレントディレクトリ(ワーキングディレクトリ)を表示する

echo getcwd();

カレントディレクトリのファイル構成を取得する

$dirs = scandir(getcwd());
print_r($dirs);
0

WordPress 他のページにリダイレクトさせる

以前、WordPress だれでも見れないようにする方法でも使ったauth_redirectですが、 wp_redirect を使うと、その他のページにもリダイレクトさせることが簡単にできます。

wp_redirect( $location, $status );

たとえば、トップページにリダイレクトさせたかったら、

wp_redirect( home_url() );

任意の投稿ページにコンテンツを移動したので飛ばしたかった(301リダイレクト)なら、

wp_redirect( get_permalink(117) , 301);

といったかんじで。 当然ですが、auth_redirectや、wp_redirectは、なにかを表示(echo や print)する前に実行しなければだめなので、

add_action( 'get_header', 'my_require' );
//投稿ページID 110 のページを 117 のページに301リダイレクト
function my_require(){
    if (is_single(110)) {
        wp_redirect( get_permalink(117) , 301);
        exit;
    }
}

のようにget_headerフックを使って入れてあげる必要があります。

0

WordPress 現在開いているページのURL

WordPressで開いているページのURLを取得するには、

echo get_the_permalink();

だけでOKなんですが、独自にGETオプションなんかをくっつけている場合には、get_the_permalink()では取得できません。 そこで、

echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];

で取得できます。 スキーム名(httpとかhttps)をくっつけたいときは、

$http = is_ssl() ? 'https' : 'http' . '://';
$url = $http . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
echo $url;

とすればOK

0

PHP と JavaScript の連想配列

言語を横断縦断していると、頭のなかがごちゃごちゃになってきます。。

PHPの連想配列

$a = array();
$a['dog']  = 'わん';
$a['cat'] = 'にゃん';
$a['mouse']  = 'ちゅー';

一行でまとめると

$a = array('dog'=>"わん" , 'cat':'にゃん' , 'mouse':'ちゅー')

JavaScriptの場合 書き方はいろいろありますが、PHPと一番近い書き方

var a= {};
a['dog']  = 'わん';
a['cat'] = 'にゃん';
a['mouse']  = 'ちゅー';

一行で書くと、

var a= {'dog':'わん' , 'cat':'にゃん' , 'mouse':'ちゅー'};

ちなみにC#では

Hashtable ht = new Hashtable();
ht["dog"] = "わん";
ht["cat"] = "にゃん";
ht["mouse"] = "ちゅー";

となります。

0

MySQL 数値のデータ型

UNSIGNED
BIT 0~1
TINYINT -128~127 0~255
BOOL BOOLEAN TINYINT(1) true/false
SMALLINT -32768~32767 0~65535
MEDIUMINT -8388608~8388607 0~16777215
INT INTEGER -2147483648~2147483647 0~4294967295
BIGINT -9223372036854775808~9223372036854775807 0~18446744073709551615
FLOAT -3.402823466E+38~-1.175494351E-38 0 1.175494351E-38~3.402823466E+38 0 1.175494351E-38~3.402823466E+38
DOUBLE DOUBLE PRECISION REAL -1.7976931348623157E+308~-2.2250738585072014E-308 0 2.2250738585072014E-308~1.7976931348623157E+308 0 2.2250738585072014E-308~1.7976931348623157E+308
DECIMAL(M,D) DEC(M,D) NUMERIC(M,D) FIXED(M,D) DOUBLEと同じなので、Mは65まで DECIMAL(6,2)のとき、-9999.99~9999.99 Dを省略時はD=10になる DECIMAL(6,2)のとき、0~9999.99
金額や経緯度のような近似誤差を許容しない数値は、DECIMALを使う。 ただし、有効桁数が6桁以下ならfloatでもOK ZEROFILL を付けると、UNSIGNEDが自動的に付加されて、かつ桁数分0で埋められる。  
0

MySQL 日時のデータ型

MySQLで扱える日時に関するデータ型

DATE '1000-01-01' ~ '9999-12-31'

DATETIME '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'

TIME -838:59:59 ~ 838:59:59

YEAR 1901 ~ 2155 及び 0000

TIMESTAMP '1970-01-01 00:00:01' ~ '2038-01-19 03:14:07'

MySQL 日付と時刻型の概要
http://mysql.stu.edu.tw/doc/refman/5.1-olh/ja/date-and-time-type-overview.html

参考サイト:日付型と時刻型
http://www.dbonline.jp/mysql/type/index4.html

0

S-JISで文字化けしたりトラブったりするダメ文字たち

S-JISでいじくっていると文字化けしたり、正規表現でトラブったりするダメ文字があります。
とくにバックスラッシュ\(0x5c)が含まれている場合、PHPのマジッククォートの影響を受けるので注意が必要。

もっとも、はなっからUTF-8を使えば問題ないのですが、 CSVファイルをダウンロード、アップロード、ごにょごにょ。。する場合にWindows環境を意識しないといけないのでメモ。

2バイト目に、\(0x5c) が含まれる文字
―ソЫ噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭偆砡

2バイト目に、@(0x40) が含まれる文字
ァА院魁機掘后察宗拭繊叩邸如鼻法諭蓮僉咫奸廖戞曄檗漾瓠磧紂隋蕁襦蹇錙顱鵝纊犾

2バイト目に、[(0x5b) が含まれる文字
ーゼЪ閏骸擬啓梗纂充深措端甜納票房夕麓兌喙媼彈拏杣歇濕畆禺綣膽藜觴躰鐚饉鷦倞劯

2バイト目に、](0x5d) が含まれる文字
‐ゾЬ云馨犠珪江讃従疹曽綻転脳評望余肋兢咯嫋彎拆枉歉濔畩秕緇臂蘊訃躱鐓饐鷯偰硎

2バイト目に、^(0x5e) が含まれる文字
/タЭ運蛙疑型洪賛戎真楚耽顛膿豹某与録竸喊嫂弯擔杰歐濘畤秧綽膺蘓訖躾鐃饋鷽偂硤

2バイト目に、_(0x5f) が含まれる文字
\ダЮ雲垣祇契浩酸柔神狙胆点農廟棒誉論兩喟媽彑拈枩歙濱畧秬綫臉蘋訐軅鐇饑鸚傔硺

2バイト目に、`(0x60) が含まれる文字
AチЯ荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔濮畫秡總臍藾訌軈鐐饒鸛

2バイト目に、{(0x7b) が含まれる文字
+ボк閲顎宮鶏砿施旬須捜畜怒倍府本養几嘴學悳掉桀毬炮痣窖縵艝蛔諚轆閔驅黠垬葈

2バイト目に、}(0x7d) が含まれる文字
マм厭笠急迎閤枝殉図挿筑党媒扶凡抑凩嘲孺怡掵栲毳烋痾竈繃艟蛩諳轗閘驀黨埇蕓

2バイト目に、|(0x7c) が含まれる文字
ポл榎掛弓芸鋼旨楯酢掃竹倒培怖翻慾處嘶斈忿掟桍毫烟痞窩縹艚蛞諫轎閖驂黥埈蒴

2バイト目に、~(0x7e) が含まれる文字
×ミн円樫救鯨降止淳厨掻蓄冬梅敷盆欲凭嘸宀恠捫桎毯烝痿窰縷艤蛬諧轜閙驃黯蕙

0

PHP 日時を取得したり判定したり

日付を表示したり計算したりするのにつかう関数

//今日の日時(ローカル)を取得する
echo date("Y年m月d日 H時i分s秒");

//任意の日時(ローカル)を取得する
echo date("Y-m-d H:i:s" , mktime(1, 2, 3, 4, 5, 2006));

//日時(ローカル)を数値(int)で取得する
echo idate('Y');
echo idate('Y',time());

//曜日を日本語で取得する
$weeks = array('日', '月', '火', '水', '木', '金', '土');
$week = $weeks[idate("w")];
echo date("Y年m月d日($week)");

//現在のタイムスタンプ(ローカル)を取得する
$now = time();
echo date("Y-m-d H:i:s" , $now);

//日時(ローカル)を配列で取得する
$today = getdate();
print_r($today);

文字から日付を取得したい場合 strtotime を使います。
入力書式はGUNマニュアルを参照

//英文形式の日時からタイムスタンプ(ローカル)を取得する
$timestamp = strtotime('1972-09-24');
print_r(getdate($timestamp));

APIなど、ときどきグリニッジ標準時が必要になることが有ります。

//現在のグリニッジ標準時(GMT)を取得する
echo gmdate("Y-m-d H:i:s");

//グリニッジ標準時(GMT)を取得する
echo date("Y-m-d H:i:s" , gmmktime());

ユーザーが入力した日付がおかしくないかチェックするとき。

//日付が妥当かどうか(入力された日付のチェック)
echo (checkdate(2, 29, 2012))?'True':'False';

画像やデータファイルなんかのファイルの更新時をチェック。 __FILE__で自分自身(phpファイル)を表します。

//ファイルの更新日時のタイムスタンプを取得する
echo filemtime (__FILE__);
0