当我做以下事情时:
$prevPost = get_previous_post();
然后我可以做:
$prevPost->post_title;
$prevPost->post_content;
...
为什么我不能得到permalink?
$prevPost->post_url; // NULL
$prevPost->post_permalink; // NULL
显然,正如
codex, 该类没有这些属性。然而,将帖子URL作为帖子的一部分似乎是合乎逻辑的。为什么不是这样?
要获得永久链接,我需要执行以下操作:
get_permalink($prevPost);
但是,我不能这样做来获得这个头衔:
get_title($prevPost);
这些不一致的原因是什么?为什么我必须通过post对象和其他对象获取一些post数据
get
功能?我对WordPress比较陌生,所以如果能写一篇文章来解释这一切,我将不胜感激。
是否有其他类型的数据共享这些不一致?它们是什么?
最合适的回答,由SO网友:Jacob Peattie 整理而成
WP\\u Post是Post在数据库中的表示形式,permalink不存储在数据库中。
它没有存储在数据库中,因为它不是帖子的属性。永久链接由站点地址、永久链接结构和帖子的slug决定。想象一下,如果更新站点上的permalink结构需要更新数据库中的每个帖子。
但是,我不能这样做来获得这个头衔:
get\\u标题($prevPost);
你可以
get_the_title($prevPost);
为了保持一致性,您还可以:
get_the_permalink($prevPost);