2017-06-29 3 views
1

Wordpressのフックにこのようなアクションを追加すると、わかりません。私は自分のテーマにファイルを含めていないし、ワードプレスの機能はどのように働いているのですか?

<?php 

function test() { 
echo "Test"; 
} 

add_action('wp_enqueue_scripts','test'); 

?> 

このコードは、私がやりたいことで機能しますが、このadd_action関数はどこから来ていますか。私はWordpressが何らかの形でそれを世話していることを知っていますが、私は実際にファイルを含めずにそれをどのように呼び出すことができるのか分かりません。私は、このファイルの前にインクルードされる別のファイルにファイルをインクルードしようとしましたが、定義されていないエラーが発生します。私は本当にこの背後にある論理を知りたがっています。あなたがで初期化この機能でしょう

答えて

1

/plugin.php WPは、含まれています:

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { 
    return add_filter($tag, $function_to_add, $priority, $accepted_args); 
} 

あなたはこのファイルが含まれている場所の機能を使用することができます。

Wordpressのは、この文書を持っており、よりhttps://developer.wordpress.org/reference/functions/add_action/

+0

しかし、私は私のファイルにplugin.phpを含めないと私はまだ私が – Rvdrichard

+0

手の込んだしてくださいを理解していないものです、その関数を呼び出すことができています。あなたが提供したコードは何に含まれていますか?それはどのディレクトリですか?これはファイルのすべてのコードですか? –

+0

私が与えたコードは、私が使ったコードです。私はカスタムWordpressのテーマを作成しようとしていたときにこれをfunction.phpファイルに配置しました。私はfunctions.phpファイルがWordpressによって自動的に実行されると信じています。 – Rvdrichard

1

@それはのような、オープンWordPressのサイト上で動作する最初のファイルは、その後のwp-ブログ - header.phpの

/** Loads the WordPress Environment and Template */ 
require(dirname(__FILE__) . '/wp-blog-header.php'); 

を必要とindex.phpのある仕事ですWP-ブログ - header.phpのは、ここで

// Load the WordPress library. 
require_once(dirname(__FILE__) . '/wp-load.php'); 
// Set up the WordPress query. 
wp(); 
// Load the theme template. 
require_once(ABSPATH . WPINC . '/template-loader.php'); 

のwp-load.phpファイルをWP-load.phpとテンプレートloader.phpを必要とするのwp-config.phpを

が必要です
if (file_exists(ABSPATH . 'wp-config.php')) { 
    /** The config file resides in ABSPATH */ 
    require_once(ABSPATH . 'wp-config.php'); 
} 

及びWP-config.phpのファイルが

require_once(ABSPATH . 'wp-settings.php'); 

及びWP-設定WP-のsettings.phpを必要WP-含む/ plugin.phpファイル

define('WPINC', 'wp-includes'); 
// Include files required for initialization. 
require(ABSPATH . WPINC . '/load.php'); 
require(ABSPATH . WPINC . '/default-constants.php'); 
require_once(ABSPATH . WPINC . '/plugin.php'); 

及びWP-含まをロード/plugin.phpファイルにはadd_action機能があります。

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { 
    return add_filter($tag, $function_to_add, $priority, $accepted_args); 
} 

とwp-in cludes/template-loader.phpテーマテンプレートを読み込みます。

require_once(ABSPATH . WPINC . '/template-loader.php'); 
+0

私はそれがどのように私の質問が何であるのか知っていますなぜ私はファイルを含めずにこの機能を使用することができます。 – Rvdrichard

+0

これは、WordPressのテーマでどのように機能しているかを知る上で役立ちます –

関連する問題