【发布时间】:2021-03-05 10:37:53
【问题描述】:
简而言之,我正在使用 AJAX 检索一堆自定义帖子,然后显示我想要的方式。
我面临的问题是在我的输出中,我现在需要使用一些 WordPress 函数,特别是“get_the_post_thumbnail_url()”。但我需要能够将返回的对象 ID 值作为第一个参数传递。
我已经尝试了引号、转义等的所有组合,似乎没有任何东西能够将 PHP 函数与 AJAX 对象值结合起来,所以我想知道这是否真的可行。
代码方面,AJAX 调用运行良好(我可以检索 get_posts() 中包含的所有内容,例如标题、内容、ID 等。我只是看不出如何获取这些值并将它们传递给要使用的 PHP 函数。
这可能吗?
function kwt21_three_card_reading_js() {
return 'jQuery.ajax({
type: "POST",
url: "'.admin_url('admin-ajax.php').'",
dataType: "json",
data: {
action : "kwt21_three_card_reading_get_cards"
},
success: function(response) {
jQuery("#kwt21-three-card-reading").html("<div class=\"row\"></div>");
jQuery.each( response, function( key, value ) {
if(key === 0) {
var cardID = "the-past";
var cardTitle = "The Past";
}
if(key === 1) {
var cardID = "the-present";
var cardTitle = "The Present";
}
if(key === 2) {
var cardID = "the-future";
var cardTitle = "The Future";
}
var count = 0;
jQuery("#kwt21-three-card-reading > .row").append(
// Card
"<div class=\"col-md-4 mb-3 mb-md-0\">" +
"<div class=\"card border-0 bg-transparent\">" +
"<div class=\"card-body p-0 text-center\">" +
"<h3 class=\"card-title h5 mb-0\">" +
"<a href=\"#" + cardID + "\" data-bs-toggle=\"modal\" class=\"stretched-link\">" +
"<img src=\"'.wp_get_attachment_image_url(40917, 'medium').'\" />" +
"</a>" +
"</h3>" +
"</div>" +
"</div>" +
"</div>" +
// Modal
"<div id=\"" + cardID + "\" class=\"modal three-card-reading-modal\" tabindex=\"-1\">" +
"<div class=\"modal-dialog modal-xl modal-dialog-centered\">" +
"<div class=\"modal-content\">" +
"<div class=\"modal-body\">" +
"<div class=\"row\">" +
"<div class=\"col-md-4\">" +
"<img src=\"" + '.get_the_post_thumbnail_url(<!-- I need to use value["ID"] here -->).' + "\" />" +
"</div>" +
"<div class=\"col-md-8\">" +
"<h3 class=\"modal-title h5 mb-3 text-uppercase text-spaced\">" +
cardTitle +
"</h3>" +
"<h4 class=\"h5 mb-3 text-uppercase text-spaced\">" +
value["post_title"] +
"</h4>" +
"<div class=\"modal-text\">" +
value["post_content"] +
"</div>" +
"</div>" +
"</div>" +
"</div>" +
"</div>" +
"</div>" +
"</div>"
);
console.log(key, value);
});
}
});';
}
【问题讨论】:
-
ajax调用没有意义,你在哪里调用ajax请求,结果与你调用它的内容有什么关系。您想将一些数据发送到 php 进行解析,然后将结果作为 JSON 返回。例如,您在一个类别页面中,并且您想延迟加载下一页结果,您可以将类别 ID 和页码发送到 wordpress。
-
AJAX 调用很有意义,我要问的是如何在输出中使用 wordpress PHP 函数。我在要解析的结果中有 ID,但是无论我如何尝试使用参数输入函数,它似乎都不起作用。我可以收集到它与语法和格式有关,但我只是在寻找一些提示。