SSL で警告が出る Lightbox 2 と FancyBox の対処法

2010 年 7 月 23 日

この警告はインターネット・エクスプローラーのものです。Welcart で、https:// で始まるページを閲覧中に目にするものです。この警告が出る原因は大きく分けて2つ有ります。
一つは、テンプレートを編集中に画像等のURLを直書きしてしまった場合。もう一つは、使用しているプラグインが、スタイルシートなどのlink タグを直書きしてしまっている場合です。
前者は自分で編集しているので察しが付くでしょうが、プラグインが原因となるとお手上げです。本来なら作者にお願いすべきでしょうが、英語で説明するのはプラグインをカスタマイズするよりも難しいw

そこで、特に報告の多い「Lightbox 2」と「FuncyBox for WordPress」の2つのプラグインでの対処法を説明いたします。つまり本体へのハックです。(フックが無かったのでハックするしかありませんでした)

Lightbox 2 での対処

修正箇所は2箇所です。

1. lightbox2.php 内にある関数、lightbox_styles() を次のように書き換えます。

function lightbox_styles() {
	/* What version of WP is running? */
	global $wp_version;
	global $stimuli_lightbox_plugin_prefix;
    /* The next line figures out where the javascripts and images and CSS are installed,
    relative to your wordpress server's root: */
    $lightbox_2_theme = urldecode(get_option('lightbox_2_theme'));
    $lightbox_style = ($stimuli_lightbox_plugin_prefix."Themes/".$lightbox_2_theme."/");

	wp_enqueue_style('lightbox_styles_customize', $lightbox_style."lightbox.css");
}

2.最後から2行目のアクションフックを変更します。

add_action('wp_head', 'lightbox_styles');
↓
add_action('init', 'lightbox_styles');


FuncyBox for WordPress での対処

変更はfancybox.php 内、2箇所です。

1. 関数mfbfw_css() 内にある次の行を1行削除します。

	echo "\n".'<link rel="stylesheet" href="'. FBFW_URL . '/css/fancybox.css" type="text/css" media="screen" />'."\n";

2. コードの一番最後に次のコードを付け足します。

add_action('init', 'mfbfw_css_customize');
function mfbfw_css_customize(){
	$url = FBFW_URL . '/css/fancybox.css';
	wp_enqueue_style('mfbfw_css_customize', $url);
}





どちらのプラグインも、スタイルシートをインクルードする際はwp_enqueue_style() 関数を使うように変更しているだけです。

汎用性を持たせるために、WordPress には様々な関数が用意されていますが、wp_enqueue はこんなに重要だったんですね。プラグインを作るときは気をつけましょう。

カテゴリー: 技術資料 タグ: , , ,
関連記事