0

我在我的 worpdress 主题 ios 按钮开关中实现,当有人单击按钮时,脚本会加载一个带有文本的 php 文件:on 或 off

这是代码:

  <script type="text/javascript">

$('#1').iphoneSwitch("<?php echo get_user_meta( $current_user->ID, '_fbpost_status', true); ?>", 
 function() {
   $('#ajax').load('<?php bloginfo( 'template_url' ); ?>/includes/ajaxswitch/on.php');
  },
  function() {
   $('#ajax').load('<?php bloginfo( 'template_url' ); ?>/includes/ajaxswitch/off.php');
  },
  {
    switch_on_container_path: '<?php bloginfo( 'template_url' ); ?>/includes/ajaxswitch/iphone_switch_container_off.png'
  });

所以 on.php 只有“已激活”文本和 of.php “已停止”文本。on 和 off 文件没有包含 wordpress 变量。我怎样才能包括它们?在 db 中进行更新。或者您知道进行更新的更好方法吗?

4

1 回答 1

0

由于您使用的是 WordPress,因此正确的做法是使用wp_localize_scriptin发送一个 JavaScript 变量functions.php

add_action('wp_enqueue_scripts', 'my_frontend_data');
function my_frontend_data()
{
  global $current_user;
  wp_localize_script('data', 'Data', array(
    'userMeta' => get_user_meta($current_user->ID, '_fbpost_status', true),
    'templateUrl' => get_template_directory_uri()
  ));
}

以上将添加一个Data可在所有页面中访问的 JavaScript 变量。然后你可以像这样在前端使用它:

var ajaxUrl = Data.templateUrl +'/includes/ajaxswitch/';

$('#1').iphoneSwitch(Data.userMeta, function() {
  $('#ajax').load(ajaxUrl +'on.php');
}, function() {
  $('#ajax').load(ajaxUrl +'off.php');
}, {
  switch_on_container_path: Data.templateUrl +'iphone_switch_container_off.png';
});
于 2013-04-14T21:53:16.397 回答