如何在点击前获取WordPress自定义文章类型的Permalink固定链接
WordPress自定义文章类型固定链接生成方案
问题原因
WordPress数据库存储的guid字段并非实际的文章永久链接,该字段仅用于Feed标识,不会随站点固定链接结构的更新同步修改,因此直接调用guid输出的永远是默认的?post_type=xxx&p=id格式的原始链接。
可用方案
方案1:推荐方案(无后续维护问题)
不要直接在SQL语句中拼接HTML链接,改为在PHP查询拿到对应文章ID后,调用WordPress内置函数get_permalink( $post_id )输出链接即可。该函数会自动匹配你设置的重写规则,无论后续是否调整固定链接结构、自定义文章类型slug,都能输出正确的永久链接。
方案2:临时SQL拼接方案(仅适合固定链接结构长期不变的场景)
如果你当前的自定义文章类型clases的固定链接结构固定为/clases/%postname%/,可以直接用数据库存储的文章别名post_name字段拼接链接,替换后的SQL代码如下:
CONCAT('<a href="', CONCAT('https://example.com/clases/', posts_clases.post_name, '/'), '" target="_self">', posts_clases.post_title, '</a>')
注意:该方案存在局限性,若后续修改站点固定链接结构、修改
clases文章类型的slug,拼接出的链接会直接失效,仅适合临时使用。
内容的提问来源于stack exchange,提问作者Claudio
相关产品推荐
相关产品推荐

