我正在编写一个带有AJAX元素的WordPress插件 - 前端使用AJAX从插件中获取HTML块。
我很难在这里加入这些作品,我怀疑它只是一个术语问题。我如何实现插件完全提供的页面?
答案 0 :(得分:0)
我强烈建议您参考https://codex.wordpress.org/AJAX_in_Plugins#Ajax_on_the_Viewer-Facing_Side
你需要在你的插件目录中有一个php脚本,它返回你请求的内容,你需要在运行时确定该url以供你的ajax参考。以上链接提供了一个示例,用于排队并使用wp_localize_script()
为您的自定义php脚本提供网址。
wp_enqueue_script( 'ajax-script', plugins_url( '/js/my_query.js', __FILE__ ), array('jquery') ); // in JavaScript, object properties are accessed as // ajax_object.ajax_url, ajax_object.we_value wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => plugins_url( '/php/myapi.php' ));
您的javascript文件将包含在每个页面上,并会在页面上侦听需要HTML块的事件,如您所描述的那样。
您的文件myapi.php
然后需要接受请求,可能使用查询字符串,从wordpress api获取相应的内容,并使用您的javascript将实现的所述内容进行回复。
虽然也可以访问wordpress api,但有两种选择:
wp-load.php
。这可能不是最干净的方式。我会建议第二个选项,并建议一个slug,在这种情况下你可能会发现这篇文章有用:wp_rewrite in a WordPress Plugin
根据Jason的评论,基于以上链接:
重写规则被大量提及,但实际上是一种分心 - 他们只是帮助使URL看起来更“友好”,这不是一个 这里的目标。关键是:注册自定义GET参数;寻找 该参数在页面渲染过程的早期;如果你找到了 参数设置,然后输出/回显填充和
die()
。有一个 可用于查看所选参数的挂钩数量 取决于你希望WP首先设置和处理多少。