WordPress 如何在我的自定义页面中显示 function.php 文件中的变量值?
WordPres how to display the value of a variable from function.php file in my custom page?
使用这段 JavaScript
代码,我添加、获取 post 的 ID(如数组)并将其传递到 function.php
文件。
const nonRegister = document.querySelectorAll('.non-register')
nonRegister.forEach(item=>{
item.addEventListener('click', function(){
let postNumber = item.getAttribute('data-post-id');
let myFavoriteArray = JSON.parse(localStorage.getItem("favoriteItems") || "[]");
let retrievedData = localStorage.getItem("favoriteItems");
let retrievedDataArray = JSON.parse(retrievedData);
if(retrievedDataArray !== null && retrievedDataArray.includes(postNumber)){
alert('This model has already been added to favorites')
}else{
myFavoriteArray.push(postNumber);
localStorage.setItem("favoriteItems", JSON.stringify(myFavoriteArray));
let forConversion = JSON.parse(retrievedData);
data = {
'action': 'vicso_non_register',
'forConversion': forConversion,
}
jQuery.ajax({
type:'post',
url: object_url.url,
data: data,
cache: false,
success: function(data){
console.log(data)
}
});
}
})
})
这是我在 function.php
文件中的代码。
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = $_POST['forConversion'];
echo $test = json_encode(array('favorite_array'=>$favorite_array));
die;
}
但是我如何获得函数 returns 所在的数组?例如,我需要一个 PHP 数组,其中包含 fav_models.php
上的这些数据。
如果有人可以建议,请帮助。
以 json 格式作为 ajax 响应发回数据:
您可以使用 wordpress wp_send_json_success
和 wp_send_json_error
函数。
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = sanitize_text_field($_POST['forConversion']);
wp_send_json_success($favorite_array);
// or you could send it via "wp_send_json_error", if you need to!
}
并且在前端,您可以 console.log
从 function.php
返回的响应。
您可以在文档页面上阅读有关这两个函数的更多信息。
WordPress wp_send_json_success
function
WordPress wp_send_json_error
function
正在向另一个页面发送数据:
有多种方法可以做到这一点,您可以 localize your script
或者我更愿意将其作为 query_var
/query string
.
发送
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = sanitize_text_field($_POST['forConversion']);
wp_send_json_success($favorite_array); // send the data back to the ajax call
if(!empty($favorite_array)){
wp_safe_redirect(site_url('/fav_models.php/?favorite='.$favorite_array));
exit;
}
}
然后在“fav_models.php”上,您可以使用以下方法访问该值:
$new_page_variable = isset($_GET["favorite"]) ? sanitize_text_field($_GET["favorite"]) : ""
使用这段 JavaScript
代码,我添加、获取 post 的 ID(如数组)并将其传递到 function.php
文件。
const nonRegister = document.querySelectorAll('.non-register')
nonRegister.forEach(item=>{
item.addEventListener('click', function(){
let postNumber = item.getAttribute('data-post-id');
let myFavoriteArray = JSON.parse(localStorage.getItem("favoriteItems") || "[]");
let retrievedData = localStorage.getItem("favoriteItems");
let retrievedDataArray = JSON.parse(retrievedData);
if(retrievedDataArray !== null && retrievedDataArray.includes(postNumber)){
alert('This model has already been added to favorites')
}else{
myFavoriteArray.push(postNumber);
localStorage.setItem("favoriteItems", JSON.stringify(myFavoriteArray));
let forConversion = JSON.parse(retrievedData);
data = {
'action': 'vicso_non_register',
'forConversion': forConversion,
}
jQuery.ajax({
type:'post',
url: object_url.url,
data: data,
cache: false,
success: function(data){
console.log(data)
}
});
}
})
})
这是我在 function.php
文件中的代码。
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = $_POST['forConversion'];
echo $test = json_encode(array('favorite_array'=>$favorite_array));
die;
}
但是我如何获得函数 returns 所在的数组?例如,我需要一个 PHP 数组,其中包含 fav_models.php
上的这些数据。
如果有人可以建议,请帮助。
以 json 格式作为 ajax 响应发回数据:
您可以使用 wordpress wp_send_json_success
和 wp_send_json_error
函数。
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = sanitize_text_field($_POST['forConversion']);
wp_send_json_success($favorite_array);
// or you could send it via "wp_send_json_error", if you need to!
}
并且在前端,您可以 console.log
从 function.php
返回的响应。
您可以在文档页面上阅读有关这两个函数的更多信息。
WordPress
wp_send_json_success
function
WordPresswp_send_json_error
function
正在向另一个页面发送数据:
有多种方法可以做到这一点,您可以 localize your script
或者我更愿意将其作为 query_var
/query string
.
add_action( 'wp_ajax_nopriv_vicso_non_register', 'vicso_non_register' );
add_action( 'wp_ajax_vicso_non_register', 'vicso_non_register' );
function vicso_non_register(){
$favorite_array = sanitize_text_field($_POST['forConversion']);
wp_send_json_success($favorite_array); // send the data back to the ajax call
if(!empty($favorite_array)){
wp_safe_redirect(site_url('/fav_models.php/?favorite='.$favorite_array));
exit;
}
}
然后在“fav_models.php”上,您可以使用以下方法访问该值:
$new_page_variable = isset($_GET["favorite"]) ? sanitize_text_field($_GET["favorite"]) : ""