将 WordPress 帖子作为纯数据结构使用的诀窍是什么?
传统上,您使用“循环”并通过以下函数输出数据:
<?php the_title(); ?>
<?php the_content(); ?>
这些函数将文本直接转储到响应中。
使用 $wpdb,我可以取回一组这样的帖子:
$posts = $wpdb->get_results("SOME SQL HERE", OBJECT);
然后我得到一组 stdClass 对象,我猜它们是......后置。它们具有“post_title”等属性,但没有固定链接,这让我认为这不是要使用的“正确” Post 对象。此外,“post_content”不是完整的 HTML——它仍然有换行符等。
在迭代这个数组时,我发现我必须这样做:
foreach ($events as $post)
{
setup_postdata($post);
...
这将该帖子置于全球范围内。然后我可以使用上述函数写出内容,并使用这样的函数来获取元数据:
$display_date = get_custom_field('display_date');
有没有更好的办法?这看起来……很奇怪。有没有办法将帖子完整表示为一个对象,包含所有元数据,以及我需要从数据级别操作它的所有其他内容,而不仅仅是假设我想将输出转储到响应中?