Web*_*per 3 javascript css wordpress
我已将此代码添加到 functions.php 但 startwordpress_scripts() 函数没有运行。
function startwordpress_scripts() {
wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css', array(), '3.3.6' );
wp_enqueue_style( 'blog', get_template_directory_uri() . '/css/blog.css' );
wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '3.3.6', true );
}
add_action( 'wp_enqueue_scripts', 'startwordpress_scripts' );
Run Code Online (Sandbox Code Playgroud)
所以我在 header.php 中添加了以下代码,它们运行良好。
<?php wp_head(); ?>
Run Code Online (Sandbox Code Playgroud)
现在我想知道 wp_head() 函数的神奇作用。谢谢。
在 WordPress 中,actions
和filters
被视为hooks。Hooks 允许我们修改 WordPress 默认行为,而无需修改核心中的代码。
只要有add_action('xxx', 'callback')
,callback
就会在do_action('xxx')
执行时调用该函数。
换句话说:当您拥有 时add_action( 'wp_enqueue_scripts', 'startwordpress_scripts' );
,就意味着 WordPress 将startwordpress_scripts()
在do_action('wp_enqueue_scripts')
执行时运行。
现在,让我们看看 WordPress 核心中的代码。
如果你看它的函数定义,wp_head()
是一个“捷径”do_action( 'wp_head' );
function wp_head() {
/**
* Print scripts or data in the head tag on the front end.
*
* @since 1.5.0
*/
do_action( 'wp_head' );
}
Run Code Online (Sandbox Code Playgroud)
换句话说,wp_head()
将执行所有用 定义的回调add_action('wp_head')
。
如果您现在查看该wp-includes/default-filters.php
文件,您将看到:
add_action( 'wp_head', 'wp_enqueue_scripts',1 );
Run Code Online (Sandbox Code Playgroud)
这意味着当wp_head()
在您的模板中遇到时,wp_enqueue_scripts()
正在执行一个被调用的函数,因为它被连接到wp_head
,如上面的代码行所示。
的函数定义wp_enqueue_scripts()
是:
function wp_enqueue_scripts() {
/**
* Fires when scripts and styles are enqueued.
*
* @since 2.8.0
*/
do_action( 'wp_enqueue_scripts' );
}
Run Code Online (Sandbox Code Playgroud)
在do_action( 'wp_enqueue_scripts' );
上面的就是告诉WordPress的执行所有的回调函数add_action('wp_enqueue_scripts', 'callback')
中定义的。
简而言之:
wp_head()
电话 do_action('wp_head')
do_action('wp_head')
执行所有的回调函数 add_action('wp_head','callback')
wp_enqueue_scripts()
是一个回调 add_action('wp_head','callback')
wp_enqueue_scripts()
电话 do_action('wp_enqueue_scripts')
do_action('wp_enqueue_scripts')
执行所有的回调函数 add_action('wp_enqueue_scripts','callback')
startwordpress_scripts()
是一个回调 add_action('wp_enqueue_scripts','callback')
startwordpress_scripts()
包括在内