如何在外部文件中使用wordpress is_email()函数

时间:2015-01-09 13:50:23

标签: php wordpress

我正在编写一个外部php脚本,该脚本将在我的一个WP页面中从ajax调用。 我希望这个脚本能够使用wordpress功能。 这就是我到目前为止所做的:

require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

这允许我访问$wpdb对象。好。但我也想使用is_email()函数和其他本机WP函数。 现在我得到"Call to undefined function is_email()..."致命错误。 任何建议赞赏

2 个答案:

答案 0 :(得分:0)

你做错了。 WP很高兴为您提供所需的功能。您应该在插件/主题functions.php文件中声明处理程序并注册wp_ajax_my_action的处理程序(该示例来自WP Codex):

<?php 
add_action( 'wp_ajax_my_action', 'my_action_callback' );
function my_action_callback() {
    global $wpdb; // this is how you get access to the database
    $whatever = intval( $_POST['whatever'] );
    $whatever += 10;
    echo $whatever;

    wp_die(); // this is required to terminate immediately 
              // and return a proper response
}

More info

答案 1 :(得分:0)

也许不是最优雅的方式,但至少它对我有用。

在functions.php中

add_action( 'wp_enqueue_scripts', 'localize_scripts');
  function localize_scripts() {
  wp_localize_script('jquery', 'urls', array( 'ajaxurl' => admin_url('admin-ajax.php') )); 
} 

在javascript中

$.ajax({
    url: urls.ajaxurl,
    data: {
        'action':'my_function',
        'otherData': someString //variable
          },
    cache: false,
    success: function() {},
    error: function() {}
});

再次在functions.php

function my_function() {

  // The $_REQUEST contains all the data sent via ajax
  if ( isset($_REQUEST) ) { 
    $someString = $_REQUEST['otherData'];
    echo $someString;
    // Always die in functions echoing ajax content
    die();
  }
}

add_action( 'wp_ajax_my_function', 'my_function' );