サポート » 使い方全般 » エラーが出る "Call to undefined function wp_style_add_data()"

  • Fatal error: Call to undefined function wp_style_add_data() in /export/sd08/www/jp/r/e/×××××/wordpress-3.5-ja-jetpack-undernavicontrol/wp-content/themes/twentyfourteen/functions.php on line 237

    特に何もいじった覚えが無いのですが上記のメッセージが表示され
    ブログが見れなくなってしまいました。
    管理画面も左のメニューのみ表示され(操作不可)右側は真っ白な状態です。
    知識が全くないのでどのように直せば良いのかが分からず、ネットで調べてみたものの
    解決法が分からなかったのでこの場をお借りしました。
    教えて頂けましたら助かります。
    下記がメッセージで記された辺りのphpです。
    最後から3行目のwp_style_add_data( ‘twentyfourteen-ie’, ‘conditional’, ‘lt IE 9’ );
    が237行目です。
    お力を貸して頂けましたら嬉しいです。
    よろしくお願い致します。

    function twentyfourteen_scripts() {
    	// Add Lato font, used in the main stylesheet.
    	wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
    
    	// Add Genericons font, used in the main stylesheet.
    	wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.2' );
    
    	// Load our main stylesheet.
    	wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array( 'genericons' ) );
    
    	// Load the Internet Explorer specific stylesheet.
    	wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style', 'genericons' ), '20131205' );
    	wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );
    
    	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    		wp_enqueue_script( 'comment-reply' );
    	}

    [モデレーター編集: 「【重要】 お読みください」はフォーラム管理上のお知らせを掲載するカテゴリーですので質問のトピックには使用されないようお願いします。質問のトピックを作成される際には最もあてはまるカテゴリーを選択してください。本件は「使い方全般」カテゴリーに移動します。]

    [モデレーター編集: タイトルが空になっていたので適切なタイトルに変更しました。]

    [モデレーター編集: コードはバッククォート(`)で囲んでください。]

15件の返信を表示中 - 1 - 15件目 (全57件中)
  • レンタルサーバーはお名前comの共用サーバーでしょうか。
    エラーが帰って来てるのが、TwentyFourteen のテーマですので他のテーマに変えてみましょう。

    モデレーター Daisuke Takahashi

    (@extendwings)

    他のテーマに変えて解決すればいいのですが、WordPressのwp_style_add_data()という関数が見つからないというエラーですので、Twenty FourteenかWordPress本体、どちらかのファイルが破損していることが考えられます。
    FTP等でテーマのファイルとWordPressのファイルを再度アップロードして、上書きしてみてはいかがでしょうか。(このとき、バックアップを取ること、wp-config.phpを上書きしないように注意してください。)

    WordPress のバージョンが 3.5 ということ。
    レンタルサーバーがお名前comの共用サーバーで在ると思いますので、
    共用サーバー SD コントロールパネルで PHP バージョン変更を確認して下さい。

    特に何もいじった覚えが無い

    ということですので、
    サーバー側で変更があったかもしれません。

    トピック投稿者 yarennoka

    (@yarennoka)

    digit@maetel様、Daisuke Takahashi様ありがとう御座います。

    使用しているレンタルサーバーはお名前comの共用サーバーです。
    PHP バージョン変更を確認したところ5.5.9でした。
    他のバージョンに変更するべきなのでしょうか?
    本当に何も分からずごめんなさい。

    そして、TwentyFourteenを他のテーマに変更する方法ですが、
    ダッシュボードが操作できない状態で他のテーマに変更するにはどのようにしたらよろしいのでしょうか?
    ネットで調べてみたのですが、やり方がいまいち分からない状態です。
    教えて頂けましたら幸いです。
    何卒よろしくお願いいたします。

    TwentyFourteen 自体を入れ替える前に。ひとまず確認しておきたいことですが。

    特に何もいじった覚えが無いのですが

    というのと、
    WordPress バージョンが 3.5 ということなので
    テーマのアップデートもしてないままではないでしょうか。

    であれば PHP は自動的に 5.5.9 にサービス側で変更にされたのではないでしょうか。
    問題がなかった時のバージョンを覚えてませんか。

    こんにちは

    この関数は 3.6.0 位から追加された関数で

    従来header.php等に記述されている以下のような

    <!--[if IE]>
    		<style>...</style>
    <![endif]-->

    という風にハードコードされているスタイルを、WordPress関数で
    <!--[if IE]>といった記述をしなくて済む関数です。

    WordPress3.5では、関数がないのでエラーになります。

    IE用のスタイルシートを出力するかどうかなので、

    //wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );

    コメントアウトすれば、大丈夫です。

    IE8以下は表示がおかしくなる可能性はありますが、header.phpに上のようにスタイルシートのリンクを貼れば修復できると思います

    そういえば TwentyFourteen テーマは WordPress 3.8 からだったですね。
    本体をグレードアップすると消えるでしょうね。

    なので、お名前comのサーバーに FTP 接続して TwentyFourteen テーマを削除してみれば、他のテーマを選択可能になるでしょう。

    WordPress 3.5 なのに、どうして TwentyFourteen がインストールされているのかしら

    トピック投稿者 yarennoka

    (@yarennoka)

    digit@maetel様
    お返事ありがとうございます。
    教えて頂いた通りお名前comのサーバーに FTP 接続して TwentyFourteen テーマの削除を
    試みたのですが、エラーが出てしまい削除ができませんでした。。。

    nobita様
    お返事ありがとうございます。
    //wp_style_add_data( ‘twentyfourteen-ie’, ‘conditional’, ‘lt IE 9’ );を
    header.phpに上のようにスタイルシートのリンクを貼れば修復できると教えて頂きましたが、
    phpの知識が無く分からないのですが、FTP 接続してheader.phpを選択するとdreamweaverが自動的に開きheader.phpのコードを編集できるのですが、そこで//wp_style_add_data( ‘twentyfourteen-ie’, ‘conditional’, ‘lt IE 9’ );を張りつければよろしいのでしょうか?
    また張りつける場所も分からないので困っております。
    教えて頂けましたら助かります。
    何卒よろしくお願い致します。

    お名前comのファイルマネージャにアクセスした状態で、FTP使用されませんでしたか。
    あるいは第三者がアクセスしていてもセキュリティの面で拒絶されますよ。

    トピック投稿者 yarennoka

    (@yarennoka)

    digit@maetel様
    ありがとうございます。
    お名前comの共有サーバーSDコントロールパネル→Filemanagerにログインし
    TwentyFourteen テーマを選択し削除ボタンを押したのですが
    この手順ではないのでしょうか?
    何もわからずすみません。。。。
    教えて頂けましたら幸いです。
    よろしくお願い致します。

    コントロールパネルのファイルマネージャでは、フォルダごとの削除は出来ません。
    そういうエラーメッセージではありませんでしたか。

    トピック投稿者 yarennoka

    (@yarennoka)

    digit@maetel様

    twentyfourteen : Deleting failed.

    上記のメッセージが出ます。

    MacOSX であればファインダーの移動から、サーバへ接続。ファインダーのウィンドウ左カラムにお名前.comのサーバがマウントされます。
    デスクトップでファイル操作するのと同様に作業を進められますよ。

    Windowsだとftpソフトでアクセスしましょう。

    手順

    テストしていないので、バックアップを取って作業してください。

    yarennokaさんが最初にお示しになられた下記のコードの

    function twentyfourteen_scripts() {
    	// Add Lato font, used in the main stylesheet.
    	wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
    
    	// Add Genericons font, used in the main stylesheet.
    	wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.0.2' );
    
    	// Load our main stylesheet.
    	wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array( 'genericons' ) );
    
    	// Load the Internet Explorer specific stylesheet.
    	wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style', 'genericons' ), '20131205' );
    	wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );
    
    	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
    		wp_enqueue_script( 'comment-reply' );
    	}

    の中の以下の部分

    wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style', 'genericons' ), '20131205' );
    	wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );

    /*
    wp_enqueue_style( 'twentyfourteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfourteen-style', 'genericons' ), '20131205' );
    	wp_style_add_data( 'twentyfourteen-ie', 'conditional', 'lt IE 9' );
    */

    に変更(/*,*/の追加)

    この時点で、ChromeやFxブラウザなら、正常に表示ができるようにる予定です。

    ならなくて、他のエラーがでたら、中断してエラーを書き込みしてください。

    エラーがなくて、このテーマをどうしても使い続ける場合は、以下を作業してください。
    header.phpを開いて

    wp_head();
    ?>
    <body>

    の wp_head();の直後(<body>の直前に)以下を貼り付けます

    <!--[if lt IE 9 ]>
    <link rel='stylesheet' href='<?php echo get_template_directory_uri() . '/css/ie.css';?>' type='text/css' media='all' />
    <![endif]-->

    Note:

    通常wp_head()はbodyの直前に置くことになっていますが
    コメントアウトしたほうの関数に

    array( 'twentyfourteen-style', 'genericons' )

    と、スタイルシートの依存関係が指定されているので、後方に置かないと動作しない可能性があるためです。

    トピック投稿者 yarennoka

    (@yarennoka)

    digit@maetel様

    ご返信ありがとうございます。
    MacOSXを使用しており、教えて頂いた通り

    ファインダーの移動から、サーバへ接続。を行ったのですが、
    ファインダーのウィンドウ左カラムにお名前.comのサーバがマウントされません。

    サーバアドレスを入力する画面が出てくるのですが
    ここに入力するのはFTPアカウント、もしくはFTPサーバー名を入力するのでしょうか?
    サーバアドレスが何にあたるのかがいまいち理解できておりません。。。
    ちなみに、FTPアカウント、もしくはFTPサーバー名を入力すると

    サーバ”×××××”への接続で問題が起きました。
    サーバが存在しないか、現在利用できません。サーバの名前またはIPアドレス、およびネットワーク接続を確認してから、やり直してください。

    とのメッセージが表示されてしまいます。

15件の返信を表示中 - 1 - 15件目 (全57件中)
  • トピック「エラーが出る "Call to undefined function wp_style_add_data()"」には新たに返信することはできません。