フォーラムへの返信

8件の返信を表示中 - 31 - 38件目 (全38件中)
  • トピック投稿者 kiki222

    (@kiki222)

    nobita様
    書いて頂いたコードで、思い通りに出来ました!
    何から何まで、ありがとうございました。
    分からない事が沢山ありますが、一歩ずつ進んで行きたいと思います。
    教えて頂いた事も、どこがどう言う意味なのかを理解しようと思います。
    ありがとうございました!

    トピック投稿者 kiki222

    (@kiki222)

    nobita様
    同じ方だったのですね!
    ご回答ありがとうございます。
    私の説明方法が悪くて、何度も申し訳ございません。
    インラインでcssの記述は必要ないのですが、
    http://www.sample.com/css/jquery.fancybox.css
    の記述が必要なのです。

    function my_add_script_source() {
        // jquery plugin等、依存関係があるときには、配列に handle を入れてください
        wp_enqueue_style('myfancyboxcss', 'http://www.sample.com/css/jquery.fancybox.css', array('style'), '2.1.5', 'screen');
        wp_enqueue_script('myfancyboxjs', 'http://www.sample.com/js/jquery.fancybox.js', array(), '2.1.5', true);
    
        return;
    }

    と記載してもhead内のstyle.cssの後ではなく、
    ボディ閉じタグ付近の
    http://www.sample.com/js/jquery.fancybox.js
    記載部分の近くに挿入されてしまいます。
    style.cssの後に挿入される様にするには何か、方法はございますでしょうか?
    宜しくお願い致します。

    トピック投稿者 kiki222

    (@kiki222)

    nobita様
    回答頂いた方法で、
    同じ方かどうか分かりませんが記述方法を紹介している方がいらっしゃいました。

    http://tenman.info/labo/snip/archives/5485

    私にも分かりやすく、ショートコードを利用して
    スクリプトへのリンク、インラインのスクリプト、CSSの追加をする事が出来ました。
    ですがインラインでcssを記述する必要がないため、
    自分なりにコードを変更して

    <?php
    add_action( 'after_setup_theme', 'my_scripts_setup' );
    
    function my_scripts_setup() {
        add_action( 'wp_footer', 'my_add_inline_script', 99 );
        add_action( 'wp_enqueue_scripts', 'my_add_inline_style' );
        add_shortcode( 'myscripts', 'my_add_script_source' );
    }
    
    function my_add_inline_style() {
    
        global $post;
    
        if ( has_shortcode( $post->post_content, 'myfancybox' ) ) {
    
            $my_css= '';
            //twentytwelve-style は テーマにより異なります。
            // link 要素のIDから -css を取り除いたもの
            wp_add_inline_style( 'style', $my_css );
        }
    }
    
    function my_add_script_source() {
        // jquery plugin等、依存関係があるときには、配列に handle を入れてください
        wp_enqueue_style('myfancyboxcss', 'http://www.sample.com/css/jquery.fancybox.css', array('style'), '2.1.5', 'screen');
        wp_enqueue_script('myfancyboxjs', 'http://www.sample.com/js/jquery.fancybox.js', array(), '2.1.5', true);
    
        return;
    }
    
    function my_add_inline_script() {
    
        $scripts= '$(document).ready(function() {
    		$(".fancybox").fancybox();
    	});';
    
        if ( wp_script_is( 'myfancyboxjs', 'done' ) ) {
    
            $html= '<script type="text/javascript">%1$s</script>'."\n";
    
            printf( $html, $scripts );
        }
    }
    ?>

    としましたが、
    head内ではなく、body閉じタグ付近で
    cssへのリンクが挿入されてしまっています。

    head内のstyle.cssの後に挿入される様にするには、
    どこを変更すれば良いものでしょうか?

    nobita様に限らず、どなたでもご回答をお願いできますでしょうか?
    何度も申し訳ございませんが、宜しくお願い致します。

    トピック投稿者 kiki222

    (@kiki222)

    mypacecreator様
    お返事が遅くなり、申し訳ございません。
    簡単な方法はいつでも出来るのではないかと思い、
    記述して頂いたアドレスを参考にfunction.phpに記述する方法で
    自分なりに試してみましたが、上手く出来ませんでした。
    もう少し試してみたいと思います。
    ありがとうございました。

    トピック投稿者 kiki222

    (@kiki222)

    色々なサイトを参考にして
    あれやこれやと試していたら
    正しくリダイレクトする事が出来ました。
    お騒がせ致しました。
    一応使ったコードを記載致します。
    もし記述間違いなどがあれば、ご指摘頂けますとありがたいです。

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wp/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{THE_REQUEST} ^.*/index.html
    RewriteRule ^(.*)index.html$ http://www.sample.com/wp/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wp/index.php [L]
    </IfModule>
    
    # END WordPress

    トピック投稿者 kiki222

    (@kiki222)

    nobita様
    ご回答ありがとうございます。
    function.phpに書き込む方法を教えて頂き、ありがとうございます。
    スマートな方法の様なのですが、
    スマートすぎてまだまだ分からない部分が多く理解が出来ておりません。
    現在はまず、mypacecreator様に回答いただいた方法で試したいと思います。
    上手く出来ましたら、その後nobita様に教えて頂いた方法を自分なりに試してみたいと思います。
    ありがとうございました。

    トピック投稿者 kiki222

    (@kiki222)

    mypacecreator様
    再度のご回答ありがとうございます。
    仰って頂いた方法で、切り替える事が出来ました。
    まず、

    1.
    header-fancybox.phpを新たに作って、固定ページテンプレートではget_header(‘fancybox’);で呼び出す

    通常のheader.phpにはfancybox.cssの記述はなし、
    header-fancybox.phpのみfancybox.cssを記載しました。
    そして、page-fancy.phpを作成し、
    固定ページの新規作成画面の「ページ属性」で「テンプレート」を選択出来るようにしました。
    (合っておりますでしょうか?)

    次に、

    wp_enqueue_scriptを使えば、footer.phpをいじらなくてもwp_footerの位置でJSを出してくれるようにできます。

    <?php wp_enqueue_script('fancybox', 'http://www.sample.com/js/jquery.fancybox.js', array(), '2.1.5', true); ?>


    header-fancybox.php内に記載したところ、body閉じタグの前にコードが表示されました。

    ここで、質問なのですが
    今まではhead内に直接

    <script src="http://www.sample.com/js/jquery.fancybox.js?v=2.1.5"></script>
      <script type="text/javascript">
    	$(document).ready(function() {
    		$(".fancybox").fancybox();
    	});
    </script>

    と記載して呼び出される様にしておりましたが、
    p_enqueue_scriptを使用したことにより、

    <script type="text/javascript">
    	$(document).ready(function() {
    		$(".fancybox").fancybox();
    	});
    </script>

    のみがhead内に残っている状態です。
    同じようにbody閉じタグの前に挿入されるようなコードはありますでしょうか?

    何度も申し訳ございませんが、宜しくお願い致します。

    トピック投稿者 kiki222

    (@kiki222)

    mypacecreator様
    お返事ありがとうございます。

    申し訳ございません、情報の追加がございます。
    fancybox.cssも合わせて特定の固定ページのみ読み込ませたいのです。
    一番の希望としてはhead内にcss記述を入れて、
    body閉じタグの直前にjs記述を入れたいです。

    何かスマートな記述方法はありますでしょうか?
    宜しくお願い致します。

8件の返信を表示中 - 31 - 38件目 (全38件中)