Home > WordPress > Safariでの表示不具合も解決できました

Safariでの表示不具合も解決できました

前回『プラグイン導入によるSafariでの表示不具合』ということでデバッグをしていました。結論としてはプラグインやテーマでjavscriptライブラリを2重に読み込んでいることが原因のようで、これを解決させるとその不具合も問題なく解消されました。ようやくひと安心…といったところです。

どんな対策をしたかというとWP 2.1から導入されたというwp_enqueue_script()という関数を使いました。javascriptライブラリを引き込むのにGoogle Maps for WordPressプラグインがこの関数を使っていたことに端を発します。

このwp_enqueue_script()関数の詳しい説明は『wp_enqueue_scriptで外部JavaScriptの読み込みをスマートに at WordPress.ex-libris.jp』や『[WP]wordpress付属のJavascriptを使用する - WebTecNote』に任せますとして、対策のために変更したのは次の通りです。

Lightbox JS 2.04プラグイン・lightbox.php:

PHP:
  1. function lightbox_styles() {
  2.     $lightbox_path = get_option('siteurl')."/wp-content/plugins/lightbox-2-wordpress-plugin/lightbox/";
  3.     $lightboxscript.= "<script type=\"text/javascript\"> lb_path = \"$lightbox_path\"; </script>\n";
  4.     $lightboxscript.= "<link rel=\"stylesheet\" href=\"".$lightbox_path."css/lightbox.css\" type=\"text/css\" media=\"screen\" />\n";
  5.     $lightboxscript.= "<script type=\"text/javascript\" src=\"".$lightbox_path."js/prototype.js\"></script>\n";
  6.     $lightboxscript.= "<script type=\"text/javascript\" src=\"".$lightbox_path."js/scriptaculous.js?load=effects,builder\"></script>\n";
  7.     $lightboxscript.= "<script type=\"text/javascript\" src=\"".$lightbox_path."js/lightbox.js\"></script>\n";
  8.  
  9.     print($lightboxscript);
  10. }

の部分を次のように変更します。

PHP:
  1. function lightbox_styles() {
  2. // Erase    $lightbox_path = get_option('siteurl')."/wp-content/plugins/lightbox-2-wordpress-plugin/lightbox/";
  3. // start Add
  4.     $lightbox_path = get_option('siteurl') . "/wp-content/plugins/". basename(dirname(__FILE__)) . "/lightbox/";
  5. // end Add
  6.     $lightboxscript.= "<script type=\"text/javascript\"> lb_path = \"$lightbox_path\"; \n";
  7.     $lightboxscript.= "<link rel=\"stylesheet\" href=\"".$lightbox_path."css/lightbox.css\" type=\"text/css\" media=\"screen\" />\n";
  8.  
  9. // Erase    $lightboxscript.= "</script><script type=\"text/javascript\" src=\"".$lightbox_path."js/prototype.js\"></script>\n";
  10. // Erase    $lightboxscript.= "<script type=\"text/javascript\" src=\"".$lightbox_path."js/scriptaculous.js?load=effects,builder\"></script>\n";
  11. // Erase    $lightboxscript.= "<script type=\"text/javascript\" src=\"".$lightbox_path."js/lightbox.js\"></script>\n";
  12.  
  13. // start Add
  14.     wp_enqueue_script('wpLightbox', "{$lightbox_path}js/lightbox.js", array('prototype', 'scriptaculous-effects', 'scriptaculous-builder'));
  15. // end Add
  16.  
  17.     print($lightboxscript);
  18. }

でもこれだけでは修正は有効にならないのでその下にあるコードも変更します。

Lightbox JS 2.04プラグイン・lightbox.php:

PHP:
  1. // Erase    add_action('wp_head', 'lightbox_styles');
  2. // start Add
  3. add_action('wp_print_scripts', 'lightbox_styles');
  4. // end Add

Google Maps for WordPressプラグインとLightbox JS 2.04プラグインの競合による不具合はこれで解消されます。

…でも私の使っているテーマの関係もあってこれだけでは終わりそうにないのでテーマの方も変更しておくことにしました。使用しているテーマは『Rounded v2 blue edition』です。このテーマの構成ファイルのうち、header.phpに対して修正を施しました。

Rounded v2 blue editionテーマ・header.php:

PHP:
  1. link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="all" /
  2.  
  3.     </style>
  4. <!-- Comment Out
  5.     <script src="<?php bloginfo('template_directory'); ?>/js/lib/prototype.js" type="text/javascript">/script>
  6.     <script src="<?php bloginfo('template_directory'); ?>/js/scriptaculous.js" type="text/javascript"></script>
  7.         <script src="<?php bloginfo('template_directory'); ?>/js/sifr.js" type="text/javascript"></script>
  8.  Comment Out -->
  9. <?php
  10. // start Add
  11.     $template_url = get_option('siteurl') . "/wp-content/themes/rounded-v2-blue-edition-10/";
  12.     wp_enqueue_script('sifr', "{$template_url}js/sifr.js" , array('prototype', 'scriptaculous'));
  13. // end Add
  14. ?>

これらの変更によりjavascriptライブラリが2重に読み込むこともなくなるようです。吐き出されるソースコードでも確認したので確かでしょう。

これでようやく枕を高くして眠れそうです(^-^)

…あぁ、でも折角紹介しているソースコードが見にくい…。デザイン的にはかなり気に入っているんだけど別のテーマを探した方が良いのかなぁ……。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://shinonon-web.net/2008/06/06/99/trackback/
Listed below are links to weblogs that reference
Safariでの表示不具合も解決できました from ある日の小さなつぶやき

Home > WordPress > Safariでの表示不具合も解決できました

Tag Cloud
  • mamenagy project
  • チーム・マイナス6%
最近の投稿
Recent Reactions
Recent Pings

Return to page top