使用AJAX调用时,Get_Option(‘admin_mail’)在WordPress中不起作用

时间:2017-01-10 作者:Mr.Pandya

因此,我最近一直在Wordpress中使用Ajax,并设法从数据库中获取一些股票数据到我的网站中。然而,我现在正试图使用Ajax将Wordpress帖子加载到我的左侧边栏中,这需要使用Wordpress函数,似乎我做得不太好。get\\u option()在此上显示NULL。

JS公司

 url:"<?php echo get_template_directory_uri(); ?>/sendContactForm.php",//request URL
                type:"POST",//Request type GET/POST
                data: $(_this).serialize()
PHP(sendContactForm.PHP)

$result = new stdClass();
$from = $_REQUEST[\'email\'];
$message = $_REQUEST[\'message\'];
$sender = $_REQUEST[\'email\'];
$result->message = $message;  
$result->subject = $_REQUEST[\'name\'] . " send you a message";
$result->to = "get_option(\'admin_email\');

$result->to = "get_option(\'admin_email\');  showing NULL

1 个回复
最合适的回答,由SO网友:magicroundabout 整理而成

我承认我对你的发送邮件功能如何将帖子加载到你的侧边栏有点困惑。。。代码似乎没有执行您描述的操作。

您正在sendContactForm中加载WordPress吗。php?是您在此处显示的sendContactForm中的唯一代码。php?

get_option() 是一个WordPress函数,因此需要加载WordPress才能执行此操作。这通常是通过在php文件的顶部放置以下内容来实现的:

require(\'../../../wp-load.php\');

但这有点老套。

在WordPress中执行AJAX的正确方法是将POST请求发送到/wp-admin/admin-ajax.php 参数如下action=sendContactForm 然后创建如下动作挂钩:

add_action(\'wp_ajax_sendContactForm\', \'my_email_function\');
add_action(\'wp_ajax_nopriv_sendContactForm\', \'my_email_function\');

function my_email_function() {
    // process request here
    wp_die();
}
有关此内容的更多信息,请访问:https://codex.wordpress.org/AJAX_in_Plugins

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请