好的,首先,让我们把事情安排妥当callback 连接到适当的action hook:
<?php
function wpse55227_enqueue_scripts() {
// Enqueue code goes here
}
add_action( \'wp_head\', \'wpse55227_enqueue_scripts\' );
?>
我们将把所有代码放入这个回调中。
下一步是添加if ( ! is_admin() )
条件包装器:
<?php
function wpse55227_enqueue_scripts() {
if ( ! is_admin() ) {
// Enqueue code goes here
}
}
add_action( \'wp_head\', \'wpse55227_enqueue_scripts\' );
?>
现在,让我们添加原始代码:
<?php
function wpse55227_enqueue_scripts() {
if ( ! is_admin() ) {
if(!get_option(\'my_scripts_head\')){
remove_action(\'wp_head\', \'wp_print_scripts\');
remove_action(\'wp_head\', \'wp_print_head_scripts\', 9);
remove_action(\'wp_head\', \'wp_enqueue_scripts\', 1);
add_action(\'wp_footer\', \'wp_print_scripts\', 5);
add_action(\'wp_footer\', \'wp_enqueue_scripts\', 5);
add_action(\'wp_footer\', \'wp_print_head_scripts\', 5);
}
}
}
add_action( \'wp_head\', \'wpse55227_enqueue_scripts\' );
?>
所以,在这一点上,我们应该回到你之前的位置。现在,让我们来说明定制器。最简单的方法是检查
$wp_customize
正在设置全局:
<?php
function wpse55227_enqueue_scripts() {
// Globalize
global $wp_customize;
// If $wp_customize is set, return
if ( isset( $wp_customize ) ) {
return;
}
if ( ! is_admin() ) {
if(!get_option(\'my_scripts_head\')){
remove_action(\'wp_head\', \'wp_print_scripts\');
remove_action(\'wp_head\', \'wp_print_head_scripts\', 9);
remove_action(\'wp_head\', \'wp_enqueue_scripts\', 1);
add_action(\'wp_footer\', \'wp_print_scripts\', 5);
add_action(\'wp_footer\', \'wp_enqueue_scripts\', 5);
add_action(\'wp_footer\', \'wp_print_head_scripts\', 5);
}
}
}
add_action( \'wp_head\', \'wpse55227_enqueue_scripts\' );
?>
顺便问一下:出于好奇,为什么要将所有排队的脚本都移动到页脚?我想这很有可能会破坏东西,和/或造成意外后果。