我已经用PHP编写了一个Wordpress插件,我想输出JSON,而不需要任何Wordpress主题html和其他样板文件。但我确实需要与其他插件和WP设置信息交互。最好的方法是什么?我目前有一个名为JSON outputter的主题文件,它只调用想要输出JSON的类的一个方法,有没有更好的方法?
编辑:让我举个例子:
我有以下索引。我的插件中名为jsonOutput的php文件:
<?php
// I need wp-config information here
$info = DB_NAME;
new otherPlugin();
header(\'Content-Type: application/json\');
echo json_encode(array("test"=>"data"));
如果我只是通过myserver访问以下文件。com/wp-content/plugins/jsonOutput/index。php那么我就无法访问wp配置信息、所有其他插件或Wordpress的其他部分。
最好的做法是只输出JSON,而不是输出页眉、页脚、标题和wordpress和/或主题添加的其他内容。我想知道这样做的首选方法是。
我目前的方式很有效,但我觉得这不是最好的方式。
P、 我觉得反对票非常严厉,我认为我提供了足够的背景,但显然没有。如果你需要更多的信息,尽管问吧,但否决票只会损害我找到真正能帮助我的人的机会。
SO网友:Mark Kaplun
您需要有自己的url结构来输出“非html”输出。实际上有几种方法,选择一种可能取决于编码风格偏好
为页面添加一个页面和一个模板,以满足您的需要。即使在主题层次结构执行路径中,您也不必输出任何html,因此您可以拥有一个不调用get_header
/get_sidebar
/get_footer
只需从url参数输出json即可。这种方法可能比插件更适合主题
使用admin-ajax.php
终点。如果没有理由为您的请求设置一个奇特的端点,那么它就可以正常工作,您可以按照所有关于如何在web上为wordpress编写ajax的示例进行操作
使用4.4中引入的新json端点。它是新的,我找不到实际的API,但它确实存在,而且可能是未来最好的解决方案
使用add_rewrite_rule
创建自己的端点并编写适当的处理程序。
最后,所有选项之间的技术差异主要在于如何设置它们以及url的格式。否则,“最好的”和“更好的”只是口味或其他要求的问题(核心json处理可能会被禁用,如果您想确保插件即使在那时也能工作,那么json端点路径就不适合您)。