所以我正在为Wordpress开发一个Quiz插件。
我已经定义了一个短代码,该短代码已被我的html代替,并且我还加入了javascript和样式。到目前为止一切都很好。
在这一点上,我想使用ajax和jquery可视化每个问题。我的测验具有一些复杂的逻辑-根据答案和插件的设置,一些测验问题树可能会掉落。
因此,我正在尝试实现一种解决方案,其中javascript使用ajax调用一次提取一个下一个问题。在后端,我创建了控制器类,该控制器类负责处理逻辑并输出提取的问题的html代码。因此,每当a开始测验时,后端就会生成一些控制器对象。
我的问题是,我如何持久存储多个控制器对象?这样我就可以获得当前使用的进度。
要做到这一点,我需要为所有正在运行的测验提供某种持久性存储。据我了解,在这里,我有两种选择:将序列化的控制器对象放入数据库中,或使用某种WP_CACHE。
所以现在我有一些问题:
1)还有其他方法可以在Wordpress中存储一组对象吗?
2)我用于测验实现的方法是吗?也许我正在做一些非常规的事情?
3)使用ajax调用与数据库通信是个好主意吗?
*编辑*
感谢@cabrerahector,他指出了set_transient()wordpress API。
我能够使用以下代码在数据库中存储对象:
...
$base64_serial = base64_encode(serialize($report_controller));
set_transient($report_id, $base64_serial, 60*60*12);
...
,然后使用以下代码检索对象:
...
$report_controller = unserialize(base64_decode( get_transient( $_GET['report_id'] )));
...
我知道这有点hacky,但是有人知道更好的方法吗?请不要告诉我创建一个包含类所有字段的数组...