子テーマの関数ファイルにファイルを含める
-
16-10-2019 - |
質問
通常、テーマ関数ファイルでは、整理するために他のファイルが必要になります。
require_once("foo.php");
現在、子テーマで作業しているので、同じことをしたいと思います。カスタム管理オプションを追加していますが、コードを含めることは不可能のようです。正しいファイルを呼び出していることと、適切な場所を呼び出していることを確認するためにパスをエコーアウトしましたが、そのファイル内では何も実行されないようです。コードは、子テーマの関数ファイル内に配置すると正常に実行されます。
解決
子テーマはディレクトリ名で親テーマを参照し、通常のインストールではすべてのテーマが存在します。 wp-content/themes/
, したがって、これらのテーマを相対パスで参照しても問題ないと思います。
include '../parent-theme/some-file.php';
それが不快な場合は、WordPress 3.0.1 の次の定数を観察してください。 二十一 という子テーマ tt子:
TEMPLATEPATH /home/adam/public_html/wp3/wp-content/themes/twentyten
STYLESHEETPATH /home/adam/public_html/wp3/wp-content/themes/tt-child
したがって、子テーマで次の操作を実行して、親テーマのディレクトリを参照できます。
include TEMPLATEPATH . '/some-file.php';
他のヒント
子テーマの場合の適切な方法は次のとおりです
require_once( get_stylesheet_directory() . 'foo.php');
親テーマ内でも引き続き使用できます
require_once ( get_template_directory() . 'foo.php' );
get_template_directory()
子テーマではまだ動作しますが、残念ながら親テーマのディレクトリをターゲットとしています。あなたの場合、それは役に立ちます
こんにちは @curtismchale:
これであるかどうかはわかりませんが、前後に引用符を含める必要があります foo.php
, 、 そのようです:
require_once('foo.php');
それで問題は解決しますか?
使用 <?php get_template_part( 'name-the-page-here' ); ?>
。拡張子 .php なし
URL をハードコードすることは絶対に避けてください。そうするための適切な方法は、
require_once( get_stylesheet_directory(). '/my_included_file.php' );
詳細については、次の URL を参照してください。 Wordpress コーデックス
さて、たとえば、インクルードを含む header.php を変更するには、次のように参照します。
require_once( get_stylesheet_directory() . '/../parenthteme/my_included_file.php' );
以下を含めることは完全に可能であり、通常のことです functions.php
.
私は子テーマでこのようにします(php
はコードのサブディレクトリです):
include 'php/core.php';
明らかな理由もなく問題が発生した場合は、デバッグ モードを有効にしてみてください。 wp-config.php
:
define('WP_DEBUG', true);
関連するエラーが発生している可能性がありますが、表示されません。
これが子テーマのパスを取得する最良の方法だと思います
<?php $get_my_path = dirname( get_bloginfo('stylesheet_url') ); ?>
<?php require_once( $get_my_path. '/my_included_file.php' ); ?>
~からアイデアを得る http://dynamicweblab.com/2013/02/get-template-path-in-wordpress-child-主題/