请不要投票...如果您需要更多详细信息,请在评论中提问... !!!
我有一个WordPress短代码。 "[something]"
。如果该页面加载了此短代码,它将完美加载...但是我的问题从这里开始:-
我想基于不同的操作加载不同的短代码。 我的简码存储在一个javascript变量中,现在我想在Wordpress页面完全加载后从该变量加载此简码...
例如:单击按钮或类似于输入框之类的操作...短代码每次都会不同...
注意:我知道短代码可以通过PHP函数工作,并且在加载JavaScript之前先加载PHP,但是有什么方法可以实现我的目的?
这是我的JavaScript函数
function showjob() {
var intrest=document.getElementById("intrest").value;
jQuery.ajax({
method: 'POST',
url: 'jobsloader.php',
data: {
intrest: intrest,
type: 'need'
},
success: function(data)
{
// run recieved shortcode and display it in addcontainer
document.getElementById("addcontainer").innerHTML = data;
}
});
}
这是可能返回的示例短代码
[sc_team style="horizontal" team="Karina Marie" columns="3"]
记住简码可能会因值javacript变量“ interest”而异
答案 0 :(得分:0)
您将需要使用Ajax。您可以按照以下步骤操作
1.在JS事件上,调用Ajax请求
2.在请求参数中传递短代码名称,例如 SITE_URL / wp-admin / admin-ajax.php?action = handle_shortcode&short_code_name = name_of_shortcode
3.在服务器上的Ajax请求处理程序中,使用代码 do_shortcode('short_code_name')
4.在页面中显示服务器返回的内容。
在主题中,function.php文件添加以下内容
add_action( 'wp_ajax_nopriv_handle_shortcode', 'handle_shortcode' );
add_action( 'wp_ajax_handle_shortcode', 'handle_shortcode' );
function handle_shortcode( ) {
$shortcode = $_REQUEST['shortcode_name'];
echo do_shortcode( $shortcode );
exit;
}
然后按如下所示修改您的js代码
function showjob() {
var intrest=document.getElementById("intrest").value;
jQuery.ajax({
method: 'POST',
url: '/wp-admin/admin-ajax.php',
data: {
action: 'handle_shortcode', //You can pass other parameters to be used in shortcode
shortcode_name: intrest
},
success: function(data)
{
// run recieved shortcode and display it in addcontainer
document.getElementById("addcontainer").innerHTML = data;
}
});
}