• 解決済 hokutonojikei

    (@hokutonojikei)


    functions.phpに記述していて正常に動いていた機能を
    自作プラグインに移したところ下記エラーが出ました。

    Fatal error: Call to undefined function wp_get_current_user() in wp-includes/capabilities.php on line 1281

    http://blog.rt-a.org/?p=344
    そこで調査し上記ページを参考に
    require_once(dirname(__FILE__).’/pluggable.php’);を加えてみたところ
    下記エラーが出るようになりました。

    Fatal error: Call to undefined function is_rtl() in wp-includes/theme.php on line 1217

    ちなみにwp_get_current_user()は最初プラグイン内でつかっていたのですが
    上記ソースを加えたタイミングで削除してみたのですが
    上記ソースを削除するとFatal error: Call to undefined function wp_get_current_user()とまた出てしまいます。
    is_rtl()に関してはプラグインfunctions共に使用しておりません。

    プラグイン自体は認識され管理画面から有効化をした時点でサイト、管理画面共に表示されなくなります。

    似たような経験談・解決策など教えていただけたら嬉しいです。
    よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    プラグインファイルとテーマのfunctions.phpの読み込みのタイミングには多少の差があり、エラーが出たのは、この差によるものです。

    nobita さんの挙げていただいた記事のように、処理を関数化してテーマのfunctions.phpの読み込みとほぼ同タイミングのフック(after_theme_setup)で処理を行うようにすると、エラーを回避できるはずです。

    function my_custom_function() {
    // ここにfunctions.php に書いていたコードを移植
    }
    add_action( 'after_theme_setup', 'my_custom_function' );
    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    nobitaさんご回答ありがとうございます。

    ご提示いただいたページ自分でも読んだつもりになっていましたが
    本日改めて読んでみると理解が深まりました。

    私のプラグインでもcurrent_user_canをつかっており
    すべて関数内で実行するようにしたところ1つ目のエラーが解消されました!
    ありがとうございます!

    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    jim912さんご回答ありがとうございます。

    半日ほど悩んでごにょごにょしておりましたが
    全体をご指定の方法でafter_theme_setupに引っかけたところ
    問題なく有効化できました!

    実行のタイミングだったことは自分でも理解していたのですが
    全体をくくっても大丈夫なんですね!

    勉強になりました!
    ありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「functions→自作プラグイン移植でのエラー」には新たに返信することはできません。