如何将页面ID存储在帖子中,而不是其他选定的永久链接?

时间:2014-07-28 作者:hans2103

我们使用Wordpress作为知识库。我们刚刚将mediawiki和jekyll留给Github页面,并将不同系统的数量从四个减少到了一个。一个Wordpress安装用于博客,三个Wordpress安装用于三种不同产品的三个不同知识库。优点是编辑只需要掌握一个系统,而不是三个。

我们已经将permalinks设置为/%postname%/这使得Web链接更加合理。在大多数页面中,我们使用编辑器添加到其他知识库页面的链接。在弹出窗口中,我们选择要链接到的页面。永久链接将添加到页面中。由于我们不断地在知识库上工作,因此会发生postname更改的情况。这将导致链接到已更改帖子的internel知识库页面出现错误404。

因此,我想添加页面id(?p=123),而不是帖子名称。当在前端点击链接时,Wordpress似乎足够聪明,可以将页面id重写为/%postname%/优点是我不必更改每个页面中的链接。(或者这也可以自动完成?)

1 个回复
最合适的回答,由SO网友:Katrina 整理而成

将其添加到您的函数中。php:

function wp_link_query_mod ( $results ){
    if( count( $results ) ){
        for( $i=0; $i<count($results); $i++ ){
            $results[$i][\'permalink\'] = wp_get_shortlink( $results[$i][\'ID\'] );
        }
    }
    return $results;
}
add_filter(\'wp_link_query\', \'wp_link_query_mod\');
这个钩子只有在WP 3.7之后才可用,如果您有一个早期版本,那么还有一个替代方案,但这意味着在WP核心文件中更改一行。

结束

相关推荐

WP_DROPDOWN_PAGES默认值

我有一个页面下拉菜单,但在我转到所选页面后,让我们说“关于我们”,dropbown的默认标题按钮是页面的标题,“关于我们”,因此我希望标题/默认选项是“请选择页面”或类似的内容。我的代码是:wp_dropdown_pages(\"title_li=&depth=1&sort_column=menu_order&child_of=\".$post->post_parent.\"&echo=0&selected=$currPage\"); 我做错了什么,