GVKun编程网logo

WordPress中利用AJAX异步获取评论用户头像的方法(wordpress ajax)

14

本文的目的是介绍WordPress中利用AJAX异步获取评论用户头像的方法的详细情况,特别关注wordpressajax的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了

本文的目的是介绍WordPress中利用AJAX异步获取评论用户头像的方法的详细情况,特别关注wordpress ajax的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解WordPress中利用AJAX异步获取评论用户头像的方法的机会,同时也不会遗漏关于Export emails – WordPress导出注册用户和评论用户的邮箱地址、php – 在WordPress中使用Ajax发送邮件、php – 在wordpress中创建ajax调用.我需要包括什么才能访问wordpress功能、php – 如何在WordPress中的自定义帖子类型的单页中获取评论模板的知识。

本文目录一览:

WordPress中利用AJAX异步获取评论用户头像的方法(wordpress ajax)

WordPress中利用AJAX异步获取评论用户头像的方法(wordpress ajax)

在评论者输入邮箱后,异步获得评论者的头像并显示出来,个人感觉这个功能虽不能给用户体验带来多大的提升,也不算是一个实用的功能,但至少很炫,看到有的网站有添加这个功能,我也不甘寂寞所以也写了个脚本,没有时间做封装,所以直接上原理和代码。

异步动态调用头像原理

  • 获得用户输入
  • 过滤用户输入
  • 传递变量到后台
  • 后台处理数据,并返回头像的HTML代码
  • 获得后台返回数据,将HTML代码加载到当前页面

貌似很多步骤,其实很简单,我们只要将自己的主题稍作修改就可以到达效果。

简单功能截图:

实现

功能代码:JavaScript 以下代码需集成 JQuery 框架中。 apiurl 变量为你的PHP api 接口文件地址,文件代码下面有。 功能主要集中在email输入框失去焦点的动作上。

rush:js;"> function getAvatar(authorEmail) {//获得头像代码封装函数 var Nowtime = Math.round(new Date().getTime() / 1000); $.get(apiurl,{ action : "get_avatar",email : authorEmail,t : Nowtime },function(data) { $('#get-avatar-img').fadeOut('slow',function() { $('#get-avatar-img').html(data).fadeIn(); }) }); }

var avatarhtml = '<div id="get-avatar-img"https://www.jb51.cc/tag/dis/" target="_blank">display:none;">';
avatarhtml += '

';
$('#respond').append(avatarhtml);//添加头像HTML
if($('#email').val().length > 1)
getAvatar($('#email').val());//获得邮箱地址
$('#email').focusout(function() {//email输入框失去焦点绑定的动作
var authorEmail = $('#email').val();
var pattern = /^[a-zA-Z0-9-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9_-]+)+$/;
var flag = pattern.test(authorEmail);
if(flag) {
$('#get-avatar-img').html('载入头像中').fadeIn('fast');
getAvatar(authorEmail);
} else {
alert('请输入正确邮箱地址');
}
})

Export emails – WordPress导出注册用户和评论用户的邮箱地址

Export emails – WordPress导出注册用户和评论用户的邮箱地址

使用完成以后, 当网站开启注册或者评论功能后,随着注册者和评论者的增多,很多站长希望给这些用户推送一些邮件消息,有些是推广网站内容,也有些是推广自己的产品,这是我们需要导出网站所有用户的邮箱。今天我们介绍一款插件 – Export emails,这款插件可以方便的导出注册用户和评论用户的邮箱地址。

使用方法:安装启用插件以后,依次点击 后台 – 工具 – Export emails,可以看到已注册用户的邮箱和发布过评论的用户邮箱,我们可以复制出来这些邮箱地址,如下图:

export-emails

详细的功能,您可以下载安装这款插件来测试一下。
[dl href=’https://wordpress.org/plugins/export-emails’]插件下载地址[/dl]

php – 在WordPress中使用Ajax发送邮件

php – 在WordPress中使用Ajax发送邮件

我正在尝试使用Ajax通过我创建的Web表单发送电子邮件,但我迷路了.我不知道Ajax如何在wordpress中运行.

我首先创建了一个动作

add_action( 'wp_ajax_siteWideMessage','wpse_sendmail' );

应该检索数据并发送邮件的功能是:

function wpse_sendmail()
{
    $for = like_escape($_POST['forwhat']);
    $email = like_escape($_POST['email']);
    $headers = 'From: '.$email ."\r\n".'Reply-To: '.$email;
    $message = like_escape($_POST['message_message']);
    $respond = like_escape($_POST['message_email']);

    wp_mail( "support@ontrgt.net","(OTN) Support: ".$support,$message,$headers); 
}

最后,js是这样的:

$("#contact-send").click(function(){
    var forwhat = $("#contact-for").val();
    var name = $("#contact-name").val();
    var email = $("#contact-email").val();

    $.post( "<?PHP echo esc_js( site_url() ) ?>",{ siteWideMessage:"null",forwhat: forwhat,name: name,email:email },function(){
            console.log("success");
    });
});

我不太清楚我在这里缺少什么.有人可以帮我理解wordpress的Ajax流程吗?

UPDATE

到目前为止,我更新了我的代码:

PHP

add_action( 'wp_ajax_siteWideMessage','wpse_sendmail' );
add_action( 'wp_ajax_nopriv_siteWideMessage','wpse_sendmail' );

function wpse_sendmail()
{
    $for = $_POST['forwhat'];
    $email = $_POST['email'];
    $headers = 'From: '.$email ."\r\n".'Reply-To: '.$email;
    $message = $_POST['message_message'];
    $respond = $_POST['message_email'];

    /*if(wp_mail( "support@ontrgt.net","(OTN) Support: ".$for,$headers))
    {
        echo "WOOHOO";
    }*/

    if($for)
    {
        //Just to see if there is any response.
        echo "Whoohoo";
    }

    die();
}

JS

$("#contact-send").click(function(){
    var forwhat = $("#contact-for").val();
    var name = $("#contact-name").val();
    var email = $("#contact-email").val();

    var data = { action:'siteWideMessage',forwhat:forwhat,name:name,email:email };
    $.post('<?PHP echo admin_url("admin-ajax.PHP"); ?>',data,function(response) {
        alert(response);
    });
});

wordpress仍然没有响应我的AJAX命令.我正在使用inspect元素,我看不到任何数据被传递.

首先,您需要添加两个操作,一个用于明确要求使其工作的非登录用户,例如类似这样的操作(基本上在您的functions.PHP文件中):
add_action( 'wp_ajax_siteWideMessage','wpse_sendmail' );

然后,你需要向admin-ajax.PHP发出请求,所以在jQuery函数中,你可以使用这样的东西:

$("#contact-send").click(function(e){

    e.preventDefault(); // if the clicked element is a link

    //...

    var data = { 'action':'siteWideMessage','more':'values' };

    $.post('<?PHP echo admin_url('admin-ajax.PHP'); ?>',function(response) {
        console.log(response);
    });

});

确保将exit / die放在服务器端处理程序的末尾,例如:

function wpse_sendmail()
{
    // Process the post data...

    if(mail(...)) {
        echo 'success';
    }
    else {
        echo 'Failed';
    }

    die();
}

在您的成功回调中,响应变量将获得从服务器端发送的响应,即成功/失败.有更好的方法来执行此操作(使用wp_localize_script等).阅读this detailed article.此外,如果你想返回一个json响应,那么你可以使用$.json(‘url’,func).

如果您感到困惑,那么让我告诉您,您应该向admin-ajax.PHP发出请求并通过请求传递操作,在这种情况下它是siteWideMessage,因此wordpress将调用使用add_action hook注册的处理程序你的情况是wpse_sendmail.Eid穆巴拉克:-)

php – 在wordpress中创建ajax调用.我需要包括什么才能访问wordpress功能

php – 在wordpress中创建ajax调用.我需要包括什么才能访问wordpress功能

我在wordpress中执行jquery ajax请求.这称为内部PHP脚本.
这个PHP脚本需要能够访问某些wordpress功能,如… functions.PHP
这对我来说很简单.
我无法做的是访问当前wordpress用户,$wpdb对象的信息.
我的问题是…是否有一些wordpress文件,我可以包含,这使我可以访问所有数据(和functions.PHP).
我希望你能理解我正在访问的东西,因为我知道这可能是世界上最彻底的解释
:d

解决方法:

糟糕的方式(正如其他人所指出的那样)

当我创建一些与wordpress一起使用的自定义PHP时,我包含了wp-load.PHP文件.然后加载所需的一切,包括$wpdb.

require_once('wp-load.PHP'); // relative path from your PHP file

global $wpdb;
$wpdb->show_errors = TRUE; // useful for when you first start

我发现这是一个很好的起点,可以快速修复.但是你必须记住,这将加载比你实际需要的功能更多的功能.因此导致性能时间变慢.

好方法

一旦功能变得更加复杂,“糟糕”的实施并不是那么好.所以我转而编写插件. wordpress codex包含有关使用AJAX和插件的良好信息:http://codex.wordpress.org/AJAX_in_Plugins

在最基本的形式中,您需要注册您的AJAX钩子:

// 'wp_ajax_foo' is the hook, 'foo' is the function that handles the request
add_action( 'wp_ajax_foo', 'foo');

您还需要相应的功能(在本例中为foo):

function foo() {
    // handle the AJAX request
    $bar = $_POST['bar'];
}

然后在JavaScript中,您可以识别要与action属性一起使用的钩子,但忽略wp_ajax部分:

$.post(ajaxurl, { action: 'foo', bar: true }, function(response) {
    // do something with response
});

php – 如何在WordPress中的自定义帖子类型的单页中获取评论模板

php – 如何在WordPress中的自定义帖子类型的单页中获取评论模板

我创建了名为blog&的自定义帖子类型在此帖子类型中添加了一些帖子.
但是我无法在此自定义帖子类型的单个页面中看到评论模板.

我也使用了comments_template(”,true);

但它没有显示任何内容

解决方法

在数据库中触发此SQL查询

UPDATE wp_posts SET comment_status = 'open' WHERE post_type = 'blog';

并且不要忘记在设置中设置刻度线 – >讨论设置 – >允许人们发表对新文章的评论

在您的管理面板中然后单击保存更改.

关于WordPress中利用AJAX异步获取评论用户头像的方法wordpress ajax的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Export emails – WordPress导出注册用户和评论用户的邮箱地址、php – 在WordPress中使用Ajax发送邮件、php – 在wordpress中创建ajax调用.我需要包括什么才能访问wordpress功能、php – 如何在WordPress中的自定义帖子类型的单页中获取评论模板等相关内容,可以在本站寻找。

本文标签:

上一篇WordPress中利用AJAX技术进行评论提交的实现示例(wordpress ajax)

下一篇使用CDN和AJAX加速WordPress中jQuery的加载(wordpress cdn)