gpt4 book ai didi

php - 在 WordPress 函数文件中包含 JS(使用 PHP)的最佳实践

转载 作者:可可西里 更新时间:2023-10-31 23:32:57 25 4
gpt4 key购买 nike

我正在构建自定义 WordPress 主题,有一个关于 WordPress 和 Functions.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 所做的那样?

我有多种方法可以完成这项工作,但我想以最好的方式完成。想法?

最佳答案

我在 Easy Retweet WordPress Plugin 中做了一个小技巧来做到这一点.

// Enqueue the script
add_action('template_redirect', 'add_script');

function add_script() {
wp_enqueue_script('retweet', get_option('home') . '/?retweetjs');
}

add_action('init', 'deliver_js');

function deliver_js() {
if ( array_key_exists('retweetjs', $_GET) ) {

header('Content-Type: text/javascript');
print_retweet_js($options);

// die after printing js
die();
}
}

function print_retweet_js($options) {
include_once('path/to/your/js/script.php');
}

希望对你有用

关于php - 在 WordPress 函数文件中包含 JS(使用 PHP)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12739197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com