我正在开发一个插件,并且有一个快速的问题...我首先将我的插件开发为一个单独的'网页',现在我将它整合(包装)到一个WP插件中。这一切都在WP之前正常运行,现在几乎正常运行,但我遇到了一个有趣的问题。无论如何,对于我的问题......在WP侧边栏中使用jQuery .post()
函数是否存在某种问题?我正在尝试做这类事......
jQuery.post("php/draw_calendar.php",
{month: currentMonth, year:
currentYear - 2000, days:
daysInMonth}, function(data){
jQuery("#Calender").html(data);
jQuery( "#eventDialog" ).dialog({ autoOpen: false, resizable: false,
width: 300, minHeight: 200 });
jQuery( "#eventDialog" ).bind(
"dialogopen", function(event, ui) {});
});
jQuery中的所有内容都可以正常工作,但似乎从文件返回的数据似乎永远不会添加到HTML中,而返回的所有内容都是“这是一个变量”。
我认为这可能需要对jQuery和Wordpress中的路径如何工作做些什么,但我对于该怎么做有点不知所措。我没有在网上看到任何其他信息,所以也许我只是在做一些愚蠢的事情。
感谢。
答案 0 :(得分:3)
您应该使用WP API( WP Plugin )为 bloginfo() 获取正确的目录... ...类似于:
jQuery.post("<?php bloginfo('wpurl'); ?>/wp-content/plugins/calendar/draw_calendar.php",
布拉德指出你需要使用wpurl
。
此外,正如awats所写,您可能只需将WP常量用于插件目录。我不确定它是如何格式化的:
jQuery.post("<?php echo PLUGINDIR; ?>/calendar/draw_calendar.php",
同样来自 determining plugin and content pages page ,看起来您可以使用plugin_basename();
:
jQuery.post("<?php echo plugin_basename(); ?>/calendar/draw_calendar.php",
答案 1 :(得分:0)
您的插件是否在管理员端运行?在这种情况下,您可以考虑使用内置的AJAX处理器。所以你可以这样做......
<?php
add_action('wp_ajax_update_calender', 'update_calender_callback');
function update_calender_callback(){
//perhaps include your calender.php script here
// and run the operations you need...
}
//break the php here in the plugin file and then your js is entered after ?>
<script type="text/javascript">
var calData = {
month: currentMonth,
year: currentYear - 2000,
days: daysInMonth
action: update_calender //notice we send an action here...
}
//The callback function I just copied and pasta from what you had...
jQuery.post('ajaxurl',calData,function(data){
jQuery("#Calender").html(data);
jQuery( "#eventDialog" ).dialog({ autoOpen: false, resizable: false,
width: 300, minHeight: 200 });
jQuery( "#eventDialog" ).bind(
"dialogopen", function(event, ui) {});
})
</script>
http://codex.wordpress.org/AJAX_in_Plugins
或者对于一个不太优雅的,所有js解决方案,你可以试试......
jQuery.post(location.protocol+"//"+location.hostname+"/wp-content/plugins/yourpluginname/scriptname", data, function...