WordPress Lab

WordPressでjQueryのAjaxを使うときの注意。

2013年5月20日 月曜日

恥ずかしながら、知りませんでした・・・

ウェブエントリーズが納品するWordPressはブログとして、
静的HTMLで制作した本体サイトとセットにするのが一番多くて、

レイアウトやら見出しやら、ボタンやら、本体サイトとシームレスなデザインにすべく
WordPressのheader.phpやfooter.phpの内容を、本体側からコピペして、
共通のCSSやJavascriptも読み込んだりしてるのですが、

最近装飾的や機能的に出番が多くなったjQueryに関しては
WordPressに外部ファイルのjquery.jsを読みこむソースを書くんじゃなくて
で呼び出されたjquery.jsを使わないと、
本体サイトと同じ動きをする分にはいいかも知れないけれど、
プラグインでjQueryな動きモノを追加しちゃうと、
どっちかがあるいは両方が反映しなかったり、動かなくなったりすることがあるのです。

この現象を「コンフリクト」といいます。

僕もプログラムはおろか、Javascriptも怪しいレベルなので、ムズカシイ話はハショリますが、
じつはバージョンが同じjQueryでも、WordPressに同梱されているものと
一般にjQueryのサイトから落としてくるものとは変数の定義の仕方が異なっているので
そういうことが起こるわけです。

正しい対処としては、WordPress側のjQueryに従って、

<?php wp_head();?>

の後に、jquery.js以外の動作に関連するjsファイルを読み込ませて、
header.phpに書くJavascriptソース(プラグインコードという)は

 

(function($){
  ここにもともとのJavascriptソースを書く
})(jQuery);

あるいは

jQuery(document).ready(function($){
  ここにもともとのJavascriptソースを書く
});

 

という感じに変更しましょう。

 

(追記) もうちょっと単純に

$(function(){
	$(・・・・)・・・・
	});

 

↓ $をjQueryに表記変更するとよいみたいです。

 

jQuery(function(){
	jQuery(・・・・)・・・・
	});
});

 

ちなみに「コンフリクト」というのはWordPressにだけ起こる事象ではなく、
prototypeとjQueryのAjaxを同一HTML上で使うと動かなかったりする、
あれも「コンフリクト」なのです。

 

(以上、2013/5/19 WordBench京都での瀬戸 貴弘さんのセッションのウケウリです。感謝。)

※追記※
WordPressに同梱のjQueryが機能していないときは、header.php

<?php wp_head();?>

の前に

<?php wp_enqueue_script( 'jquery' ); ?>

を書くか、

functions.phpに以下を追記して下さい。

function load_script(){
    wp_enqueue_script('jquery');
}
add_action('init', 'load_script');

 

マルチサイト化して特権管理者になったadminは削除して振替出来ない

2013年4月16日 火曜日

WordPressがデフォルトで設定する adminアカウントを
インターネット上で公開されている辞書ツールを使って、考えられるあらゆるパターンのパスワードを順番に試すという大規模無差別攻撃(ブルートフォースアタック)なるものがいま横行していて、少なからずある、弊社で管理する該当サイトの対策処置にすったもんだしておりました。

一番手っ取り早く単純で効果もあるのはadmin以外に「管理者」ユーザーを立てて、そのユーザーでログインしてadminを削除する、という方法です。

その場合削除するadminで書いた記事などは残すユーザーに「アサイン」するのを忘れるといっかんのぱあ、になりますので気をつけましょう。

 

ところで、マルチサイト化して特権管理者になったadminは削除して振替が出来ないんですね・・・
(phpMyAdminでできるっちゃあ、できるんですけど、デザイン畑でプログラムに疎いもので・・・)

仕方ないので、その場合は目線を変えて、

「adminでパスワード入力に繰り返し失敗したら、一定時間アクセスできなくなる」
というプラグイン(Simple Login Lockdown)を使うというのも手ですし、

「ログイン画面のURLを変えちゃう」
というプラグイン(Stealth Login Page)などもあるので、代用するのがよいかと思います。

 

(参考にさせていただいた記事)

» WordPress セキュリティ Simple Login Lockdown を使ってみる

» wp-adminと wp-login.php を守るプラグイン Stealth Login Page

FacebookプラグインでFacebookページヘの投稿を試してみる。

2013年4月12日 金曜日

「Facebook」プラグインの「Social Publisher Settings」の設定で、
Facebookページ「Web-Entry’s WordPress Labo」ページヘのタイムラインへの投稿を試みました。

Facebook側ではシェアでURLをコピって貼ったときとおんなじような感じになるっていうか、
まさに「リンクをシェアしました」になってるやん。

タイムラインに直接投稿したような感じになるのを期待してたんやけどなー・・・

MTS Simple Bookingを試す

2013年2月5日 火曜日

WordPressに予約システムをプラグインで導入したいけど、
日本語化されているものが少ないし、
日本人的な使い方に適しているのも少ない感じ・・・

MTS Simple Bookingが一番いい感じ。

» シンプル予約システム(MTS Simple Booking)

 

 

TablePressを試す

2013年2月1日 金曜日

[table id=1 /]

管理画面の投稿フォームにtable描いて、中味をクライアントさまがつど更新されるとなると、
TinyMCE Advancedだとちょっと不親切な感じですよね。

TablePressプラグインで編集ページをつくって、
表の中味の編集方法だけおしえてあげるのがいいみたい。

WP-Table Reloaded のサポートが終了したので、その後継としてTablePressがリリースされました。
現時点で日本語化してないので、まだちょっと使いにくいけど。

ページトップへ