• ベストアンサー
  • すぐに回答を!

子テーマでphpファイルの再定義

初心者です。 現在ウェブサイトをWPにて構築しております。 ヘッダー部分のコードを編集したく、 子テーマにheader-logo.phpというファイルを格納し編集しようとしました。 ただ、このファイルが、親テーマのfunction.phpでrequire_onceにて定義してあるため、子テーマのfunction.phpで再定義しようとすると、下記の通りエラーが出てしまいます。 ****************************************エラー内容******************************************* wp-content/themes/law_tcd031/functions/header-logo.php ファイルの447行目のエラーのため、PHP コードの変更をロールバックしました。修正し、もう一度保存してください。 Cannot redeclare _dp_get_upload_err_msg() (previously declared in wp-content/themes/law-child/functions/header-logo.php:447) ****************************************エラー内容******************************************* 恐らく、親テーマでも同じ関数定義があるため、エラーとして出てきていると思うのですが、認識あっていますでしょうか。 本件に関して、親テーマを編集せずに、子テーマにあるファイルをrequireすることは可能でしょうか。 お忙しい所大変申し訳ありませんが、ご教授いただけると幸いです。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数59
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • 4017B
  • ベストアンサー率71% (1080/1507)

WPで子テーマを使う意義は正しく今回の様なケースに柔軟に対応出来る点にあります。エラーの原因は既に質問者が理解している通りですので、解決策は至って簡単、その重複している関数名を変更してやれば良いのです。 この場合は親テーマはそのままに、子テーマの header-logo.php の該当部分を何か適当な違う関数名に書き換えて再保存すればOKです。ただし修正する場合、直接エラー表示が出た部分のみだけでは無く、ちゃんと子テーマ側の全てのphpファイルを調べて同じ関数名の記述が他にもないか調べて、あればそれも含めて全て一律に同じ関数名に修正して置く必要があります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

4017B様 ご回答ありがとうございました。 4017B様のご回答を元に試行錯誤したところ、やりたかったことを実現することが出来ました。 お忙しい所ご対応頂きありがとうございました!

関連するQ&A

  • WORDPRESSのfunctions.php

    こんばんは。 タイトルの「functions.php」のカスタマイズについて、いろんなサイトで書かれています。 http://www.webcreatorbox.com/tech/customize-wordpress-admin-page/ 私も試そうと思っていますが、「wp-content/themes/(テーマ名)」の中と「wp-includes」の中と2つあります。 どっちのことでしょうか?

    • 締切済み
    • CSS
  • Wordpress のPHPファイルをIEで開く

    WordPress のテーマを変更したいと思い、PHPファイルをいじったのですが PHPファイルをそのままIEで開けないんですね。 ディレクトリはこんな感じなんですが、 C:\Program Files\Apache\Apache24\htdocs\wordpress\wp-content\themes http://localhost/wordpress\wp-content\themes\twentytwelve\index.php では開けませんでした。間違ってますか? It works と表示されるファイル(C:\Program Files\Apache\Apache24\htdocsにあります。)はhttp://localhost/で開けます。

    • ベストアンサー
    • PHP
  • wordpressのテーマカスタマイズにについて

    wordpressのテーマカスタマイズにについて 既存のテーマを使用しカスタマイズしています。 list.phpというファイルを新規作成しアップロードしました。 <?php get_header(); ?> <dl class="feed"> <?php $posts = get_posts('numberposts=5&order=desc'); foreach($posts as $post): ?> <dd><span class="day"><?php echo date("Y年m月d日", strtotime($post->post_date)); ?></span><a href="javascript:;" onclick="window.open('<?php the_permalink(); ?>','popup','width=800,height=700,scrollbars=yes,resizable=no,status=yes');" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a> </dd> <?php endforeach; ?> </dl> </div> <?php get_footer(); ?> と記述してあります。 ディレクトリパスhttp://ドメイン/wpディレクトリ名/wp-content/themes/テーマ名/list.php にアクセスすると Fatal error: Call to undefined function get_header() in /home/sites/chicappa.jp/users/サーバ名/web/wpディレクトリ名/wp-content/themes/テーマ名/list.php on line 1 とエラーが出てしまいます。 list.phpを正しく閲覧するためにはどうしたら良いでしょうか。 どなたかご回答お願いいたします。

    • ベストアンサー
    • PHP
  • Wordpress初心者です

    wordpress初心者です。 wordpressを勉強しようとしていて、最初でつまづいてしまいました。 XAMPPを導入して、htdocs/wordpress/wp-content/themes/twentythirteen/index.php をhttp://localohst/wordpress/wp-content/themes/twentythirteen/index.php で表示させようとしたら、 Fatal error: Call to undefined function get_header() in C:\xampp\htdocs¥wordpress\wp-content\themes\twentythirteen\index.php on line 17 とエラーが出てしまって表示できません。何が原因でどのように対処すればよいのでしょうか? よろしくお願いします。

    • 締切済み
    • CSS
  • PHP4で動作していた以下のソースが、PHP5にバージョンアップしたら

    PHP4で動作していた以下のソースが、PHP5にバージョンアップしたらエラーが出るようになってしまいました。 どのように修正したらよいかご教授ください。 サーバーはロリポップです。 ■ソース <?php header('Content-Type: text/html; charset=SHIFT_JIS'); require("http://別ドメイン/estate.html"); ?> ■エラー Warning: require() [function.require]: URL file-access is disabled in the server configuration in /パス/ファイル名 on line 3 Warning: require(取り込みたいファイルのパス/estate.html) [function.require]: failed to open stream: no suitable wrapper could be found in /パス/ファイル名 on line 3 Fatal error: require() [function.require]: Failed opening required 取り込みたいファイルのパス/estate.html' (include_path='.:/usr/local/php5.2/php') in /パス/ファイル名 on line 3

    • ベストアンサー
    • PHP
  • Wordpressのphp編集したらエラー出ました

    こんにちは。 Wordpressの記事投稿画面で<br>タグや<p>タグを改行に普段使っていてEnterキーでの自動改行が邪魔だったので、 インターネットで調べて、 http://www.webopixel.net/wordpress/171.html のサイトの説明通りに functions.phpを編集しました。 しかし、その後自分のサイトを開くと、 Parse error: syntax error, unexpected T_STRING in /home/ユーザー名/サイトドメイン名/public_html/wp-content/themes/keni61_wp_healthy_140509/functions.php on line 391 のメッセージが出て、サイト表示されないばかりかログインして前の状態に戻すことすらできなくなってしまいました。 (1)エラーが出る前の状態に戻す方法を教えて頂けますと幸いです。 (2)Enterキーでの自動改行機能をなくし、タグ打ちのみで改行などできるようにするにはどうすれば良いでしょうか?

  • 特定のHPだけ見れない

    特定の(1つの)HPが見れなくなりました。 キャッシュで開くと見れるみたいですが、 普通にクリックしても見れません。 昨日までは普通に見れたのに…なぜでしょうか? 具体的に言うと、そのHPに行こうとすると、 以下のような英語文字が出てきます。 (画面は白い)↓ * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('wp/wp-blog-header.php'); ?> 検索のやつで英訳してみたのですが… WordPressアプリケーションに面していてください。 このファイルは何もしないで、テーマをロードするためにWordPressをして、言う* wp-ブログ-header.phpをロードします。 * * @package WordPress */ /** * WordPressテーマをロードして、それを出力するようにWordPressに言います。 * * @var bool */ 定めてください(『WP_USE_THEMES』(本当の)); /WordPress EnvironmentとTemplate */が必要とする(『wp/wp-blog-header.php』)** Loads; ?> 2.* WordPressアプリケーションに面していてください。 このファイルは何もしないで、テーマをロードするためにWordPressをして、言う* wp-ブログ-header.phpをロードします。 * * @package WordPress */ /** * WordPressテーマをロードして、それを出力するようにWordPressに言います。 * * @var bool */ 定めてください(『WP_USE_THEMES』(本当の)); ちょっとよくわかりません。PCが苦手というのもあって。 どうすれば見れるようになりますか? 他のHPやサイトは普通に見れます。 詳しい方、どうかお願いします。 Windows7、CORE i 5 東芝dynabook TX/77MBL です。

  • PHPでダウンロードしたファイルが0kbになる

    いつもお世話になります。 表題のとおり、 PHPでサーバー上の画像や動画のファイルをダウンロードしローカルに保存したいのですが、 ダウンロードはできるのですがファイルの中身が空になってしまいます。 特に動画の場合は 「ファイルを再生できません。プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。」 というメッセージが出ます。 ファイル形式は画像はjpg、動画はwmvで試しました。OSはwindows7です。 ブラウザはクローム、サファリ、IEで試しましたが結果は一緒でした。 プレーヤーは入っていて、ffftpでサーバーのファイルをクリックすると正しく開きます。 以下がソースになります。 <?php // ダウンロードさせる元ファイル $fullpath = 'http://www.ドメイン/パス/logo.jpg'; // 保存時のファイル名(デフォルト) $filename = 'logo.jpg'; // HTTPヘッダ送信 header("Content-type: image/jpeg"); header("Content-Disposition: attachment; filename=$filename"); //ファイルサイズ進捗表示 header('Content-Length: '.filesize('$filename')); // ファイルを読み込んで出力 readfile($fullpath); ?> 以上です。 ダウンロードされるファイル名は正しい(この場合logo.jpg)ものがダウンロードされます。 間違っている箇所、追加or削除したほうがよいコードなどございますでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPでファイルを先に読み込ませる

    PHP初心者です。 私が使用したい多くの関数を用意した「functions.php」を作成しました。 関数を使用するファイルは、これを文頭で読み込ませているのですが 出来れば初期状態(外部ファイルを読み込まない状態。requireなど使わないで)で使いたいと考えています。 「.htaccess」などで「functions.php」を読み込んで、「.htaccess」そのディレクトリ以下はPHPファイルを作成したら関数を使用できるようにしたいのです。 ※ちなみに私は使用したいサーバーの管理権限はありません 「.htaccess」では無くても良いのですが、こういう方法は可能ですか?

    • 締切済み
    • PHP
  • PHPのheader関数の疑問

    header関数について疑問がありご質問させていただきます。 header関数について下記の説明をみつけました。それに関して質問があります。 『覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。 頻出するエラーとして、include() または require() 関数、他のファイルをアクセスする関数に 空白または空行があり、header() の前に出力が 行われてしまうというものがあります。同じ問題は、単一の PHP/HTML ファイルを使用している場合でも存在します。』http://fol.axisz.jp/php/man/php/function.header.html 上の説明文にしたがって下記のコードを試しましたが正常にリダイレクトされました。上記は以下に示すコードでエラーとなると考えましたが違うのでしょうか ---------------- 以下 PHPファイル --------------- <html> <body> <?php header("Location: http://exsample.co.jp"); ?> </body> </html> ----------------------------------------------------- 上記のPHPファイルでエラーが発生せず正常にリダイレクトされましたが引用で書かれていることはどういうことなのでしょうか。 近くに聞く人がいなくて困っています。宜しくお願いします。

    • ベストアンサー
    • PHP