• 解決済 nobuzoh

    (@nobuzoh)


    プラグインの自作の勉強を始めました。

    まず、プラグインフォルダに「myplugin」というフォルダを作成し、
    myplugin.phpを設置して必要事項を記入後、

    function helloworld(){
        echo "Hello World!!";
    }

    と書いてみて、任意のテンプレート上に<?php helloworld()?>を追記すると、
    確かに表示されました。

    次に、アクションフックをやってみようと思い、

    add_action( 'widgets_init', 'this_scripts_styles');
    function this_scripts_styles() {
    	wp_enqueue_style( 'mystyle', plugin_dir_url(__FILE__).'css/mystyle.css', array(), '3.4.2' );
    }

    と記入し、該当のmystyle.cssファイルに

    body{
        background-color:red !important;
    }

    と記入して表示を確認してみましたが、何も変わりませんでした。
    ページのソースを見てもスタイルシートが追加された形跡もありません。
    ここで試しに、this_scripts_styles内をコメントアウトし、
    die(plugin_dir_url(__FILE__).'css/mystyle.css');
    を追記して表示すると、真っ白な中にスタイルシートのアドレスが表示されました。
    このアドレスをコピーしてブラウザ上で表示してみると、
    mystyle.cssファイルの内容が表示されました。
    なのでパスには問題は内容ですが、
    スタイルシートがどうして追加されないのでしょうか?
    widgets_initが悪いのかと思いwp_loadedなどに変更してみましたが変わりありませんでした。
    (wp_enqueue_styleの実行はinitアクションの後に行うこと、
    wp_headで出力されると書いてあったので、その間にあるアクションを選んでみました)

    行き詰まりましたので、
    何が問題なのか分かりましたらご教授願います。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 nobuzoh

    (@nobuzoh)

    わかりました。

    function.phpに同じアクションフックを追加したところ、
    cannot redeclareエラーが出たのと、
    $wp_stylesをvar_dumpしたらmystyleがあったので、
    間違いはない、という結論に達し、
    header.phpを見てみたところ<?php wp_head(); ?>がありませんでした・・・

1件の返信を表示中 - 1 - 1件目 (全1件中)

トピック「とあるアクションフックでwp_enqueue_styleを実行してみた」には新たに返信することはできません。