_perMalink显示未来帖子的帖子ID URL

时间:2015-07-19 作者:FredHead

我使用WP模板生成电子邮件新闻稿。我会显示未来的帖子,直到最近才使用\\u permalink显示完整的人类可读URL(例如/this-is-a-page)。现在,它显示帖子ID URL(例如?p=5800)。如何让WP显示人类可读的URL?

也许更奇怪的是,在我未来的条目添加/编辑页面上,当我添加或更新将来要发布的故事时,顶部的消息“Post updated.View Post”链接会转到Post ID URL。但是,Permalink右侧的View Post按钮(位于条目标题输入字段的正下方)将转到人类可读的URL。

手动将post URL转换为人类可读的URL是一个主要的PITA,而且完全适得其反。我需要从我的模板HTML输出设置HTML电子邮件之前的故事发布。

如何检索和显示人类可读的URL以供将来的故事使用?

感谢您的帮助和见解。

2 个回复
最合适的回答,由SO网友:Alexander Gounder 整理而成

Permalink设置在下可用Permalinkssettings 菜单

我曾遇到过类似的问题,将此处的选项重置为未重写的URL,然后再重置为重写的URL应该会重置任何问题.htaccess 文件

SO网友:Adam Hughes

只是遇到了同样的问题。

wordpress主持人建议使用post_link 如果你不介意别人知道你未来的长线,那就钩吧。这需要添加到functions.php 文件

<小时>

functions.php

add_filter( \'post_link\', \'future_permalink\', 10, 3 );

function future_permalink( $permalink, $post, $leavename ) {
    /* for filter recursion (infinite loop) */
    static $recursing = false;

    if ( empty( $post->ID ) ) {
        return $permalink;
    }

    if ( !$recursing ) {
        if ( isset( $post->post_status ) && ( \'future\' === $post->post_status ) ) {
            // set the post status to publish to get the \'publish\' permalink
            $post->post_status = \'publish\';
            $recursing = true;
            return get_permalink( $post, $leavename ) ;
        }
    }

    $recursing = false;
    return $permalink;
}
感谢Alexander Gounder在本页的评论中找到了解决方案。为了清晰起见,我在这里添加了它。

结束

相关推荐

Dynamic Custom Permalinks

我有一个场景,其目的是创建可以动态更改的自定义永久链接,例如:如果显示国家信息,则URL应为http://example.com/country-information如果显示特定国家的城市信息,则URL应如下所示http://example.com/country/city-information. 我怎样才能做到这一点?