我正在制作一个自定义WordPress主题,并且有一个关于WordPress和Functions.php的问题需要解决。
我编写了500行jQuery代码,用于我自定义的主题管理面板的部分功能。jQuery代码位于我的functions.php文件中,在自定义管理菜单页面被显示时调用。
理想情况下,我希望将JavaScript代码从functions.php文件中移出,并使用wp_register_script + wp_enqueue_script,但是代码中也混杂了一些php代码。请看下面的示例:
什么是最好的处理方式?我是否应该将所有的JS放在单独的php文件中,并使用
我编写了500行jQuery代码,用于我自定义的主题管理面板的部分功能。jQuery代码位于我的functions.php文件中,在自定义管理菜单页面被显示时调用。
理想情况下,我希望将JavaScript代码从functions.php文件中移出,并使用wp_register_script + wp_enqueue_script,但是代码中也混杂了一些php代码。请看下面的示例:
//Function that Provides Options within the Menu Page
function quz_custom_theme_options(){
global $quz_default_colors, $quz_default_fonts;
?>
<style type="text/css">';
<?php include('admin-style.php'); ?>
</style>';
<script type="text/javascript">
function asf_toggle_box(element)
{
if (jQuery(element).next('.expandable').is(':visible') )
{
jQuery(element).next('.expandable').fadeOut('slow', function(){
jQuery(element).val('+ Settings');
jQuery(element).next('.expandable').find('.indicator').val('');
});
} else {
jQuery(element).next('.expandable').fadeIn('slow', function(){
jQuery(element).val('- Settings');
jQuery(element).next('.expandable').find('.indicator').val('visible');
});
}
}
在js中使用PHP的示例
function quz_reset_colors(t)
{
var theme_name = jQuery(t).attr('id').substr(6);
var color_fields = jQuery(t).parent().find('div.color_admin_area').find('.color-input-wrap > input[type="text"]');
// jQuery(color_fields).css('border', '1px solid red');
// console.log(color_fields);
var colors = new Array();
<?php
foreach ($quz_default_colors as $key => $value)
{
echo 'var ary = new Array(\'' . implode('\',\'', $value) . '\');' . "\r\n";
echo 'colors[\'' . $key . '\'] = ary;' . "\r\n";
}
?>
jQuery(color_fields).each(function(index, elem){
jQuery(elem).val(colors[theme_name][index]);
});
什么是最好的处理方式?我是否应该将所有的JS放在单独的php文件中,并使用
include('my_script.php');
,就像上面语句中的CSS一样?我有多种方法可以使其工作,但我想要做到最好。你有什么想法吗?