サポート » 使い方全般 » </head>の直前に<?php wp_head(); ?>を入れるとエラーが起こるのはなぜ

  • 解決済 mkconts

    (@mkconts)


    教えてください。

    最適化するために、</head>の直前に<?php wp_head(); ?>を入力したのですが、以下のようなエラーメッセージがホームページのトップ画面の上部に表示されてしまいます。

    <エラーメッセージ>
    PHP Error Message

    Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, /public_html/wordpress/wp-includes/plugin.php on line 405

    <?php wp_head(); ?>を消すと、エラーはなくなります。

    使用しているプラグインは、
    ・Advanced Code Editor
    ・Akismet
    ・wordpress.com stats
    ・WP Multibyte Patch
    だけです。

    サーバー情報は、、、
    PHPver 5.2
    MySQLver 5.1

    になります。

    ちなみに、ブラウザはGooglchrome ver 18の最新版です。

    どなたか、解決方法が分かる人いませんか?
    よろしくお願い致します。

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

    (@nobita)

    こんにちは

    最適化するために、</head>の直前に<?php wp_head(); ?>を入力したのです

    これは、適切な設定だと思います。
    wp_head()は、フックという機能を持っていて、他のプログラムは、このフックを使って、head elementのなかに、メタタグ や スクリプト スタイル などを追加する事が出来ます

    多分、このフックを使っている、テーマ プラグイン のスクリプトに問題があってエラーが発生していると思います。なので、プラグインをすべてはずし、テーマをtwentyelevenにして、プラグインを一つづつ戻していってみてください。
    プラグインを全部戻して、正常ならば、テーマが怪しいです。
    その時には、wp_headというキーワードで、テーマファイルを検索してコードを確認してみてください

    トピック投稿者 mkconts

    (@mkconts)

    ご連絡ありがとうございます。

    が、、、、

    いろいろためしたのですが、まだ解決できていません。

    プラグインをすべてはずし、テーマをtwentyelevenにして、プラグインを1つずつ戻しました。
    そして、正常だったので、私が使っていたオリジナルのテーマが怪しいのだと思います。
    しかし、オリジナルテーマは、まだ作り始めたばかりで、コードも少なく、それほど複雑になっていません。
    単純に、テーマ画像と投稿を画面に表示するだけのテーマです。

    なにか、コードを入れないと、プラグインが正しく動作しないような事とかあるのでしょうか?

    解決方法が何か分かる方いましたら、ご連絡お願い致します、

    redcocker

    (@redcocker)

    なにか、コードを入れないと、プラグインが正しく動作しないような事とかあるのでしょうか?

    そういう事ではなく、元々、テーマに記述ミス、つまりはバグがあったのだと思います。

    <?php wp_head(); ?>が無かったので、今までエラーにならなかっただけかと。

    テーマのfunctions.phpに

    add_action('wp_head'

    で始まるような記述はありませんか?

    トピック投稿者 mkconts

    (@mkconts)

    ご返信ありがとうございます。

    functions.phpを確認しましたが、特に記述ミスのようなものは見つける事ができませんでした。
    一応、現在のfunctions.phpの中身を載せておきます。
    (まだ、これくらいしかないです)

    <?php
    
    //カスタムメニュー
    register_nav_menus(array('navigation' => 'ナビゲーションバー'));
    
    //ヘッダー画像
    add_custom_image_header(' ', 'admin_header_style');
    function admin_header_style() {}
    define('NO_HEADER_TEXT',true);
    define('HEADER_IMAGE','%s/img/chessboard.jpg');
    define('HEADER_IMAGE_WIDTH',900);
    define('HEADER_IMAGE_HEIGHT',274);
    
    //ウィジェット
    register_sidebar();
    
    //ライブラリ
    add_action('wp_head','myScript',1);
    function myScript() {wp_enqueue_script('jquery');}
    
    ?>

    エラーメッセージは、以前と同じでトップ画面に表示されたままになります。

    まったく、原因不明です。

    redcocker

    (@redcocker)

    wp_enqueue_script()関数をwp_headフックのタイミングは、通常は使わないと思います。

    add_action('wp_head','myScript',1);

    add_action('wp_enqueue_scripts', 'myScript', 1);

    とすると如何でしょうか?

    トピック投稿者 mkconts

    (@mkconts)

    上記の通り、コードを変えて
    試しましたが、変化ないようです、、、。

    まさに、迷宮に入ってしまったような感じです。

    それと、以前に「ImageStore」という画像販売用のプラグインを付けていた事があるのですが、何か関係あるでしょうか?
    (すでに停止しており、利用はしていないのですが、、)

    まだ、テーマを作り始めたばかりの状態で、こんなにつまづくとは、、、。

    redcocker

    (@redcocker)

    そうしましたら、

    //ヘッダー画像
    add_custom_image_header(' ', 'admin_header_style');

    を削除してみてください。

    add_custom_image_header()関数の引数の書き方が間違っているんではないかと思います。

    redcocker

    (@redcocker)

    「//ヘッダー画像」の部分ですが、多分、これでOKです。

    //ヘッダー画像
    define('NO_HEADER_TEXT',true);
    define('HEADER_IMAGE','%s/img/chessboard.jpg');
    define('HEADER_IMAGE_WIDTH',900);
    define('HEADER_IMAGE_HEIGHT',274);
    function admin_header_style() {}
    add_custom_image_header('', 'admin_header_style');

    add_custom_image_header()関数の最初の引数は、”としてスペースも入れないで下さい。
    後は、admin_header_style()関数の中身を定義すれば良いかと。

    参考:http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_custom_image_header

    トピック投稿者 mkconts

    (@mkconts)

    ヤッター!!!\(^o^)/

    解決しましたぁー。

    やはり、コイツが悪さしていました。
    add_custom_image_header('', 'admin_header_style');

    しかも、ご指摘の通り「’ ‘」の部分に、スペースが入っており、エラーになっていた模様です、、、。
    見ず知らずの私のために、いろいろアドバイス頂きまして、なんと感謝したらいいやら、。

    redcockerさん!
    本当にありがとうございました!!
    感謝しています!!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「</head>の直前に<?php wp_head(); ?>を入れるとエラーが起こるのはなぜ」には新たに返信することはできません。