将特定单词添加到默认页面固定链接

时间:2014-04-10 作者:Shaikh Aezaz

现在我正在做我客户的一个项目。这一切都是关于亚马逊产品展示的。我的客户希望我更改所有帖子、页面、搜索结果、归档页面、类别页面和所有自定义帖子类型页面的永久链接。

我对重写API很陌生。我已经阅读了wordpress codex上提供的文档https://codex.wordpress.org/Function_Reference/WP_Rewrite 还有这里https://codex.wordpress.org/Rewrite_API 在网上也一样,但不能把事情说清楚。

有人能帮我为我的页面生成自定义永久链接吗?

马上Page url looks like http://mysite.com/?page_id=2 if its default permalinkhttp://mysite.com/sample-page/ if its post name permalink.

I wants the page url looks like http://mysite.com/info/sample-page.

在这里info 是要添加到页面url的静态单词。

我怎样才能做到这一点?在这种情况下,有人能帮我吗?我已经在这个问题上浪费了我的两天时间,我相信对于已经处理过这个问题的人来说,这真的很简单。

非常感谢快速帮助。

谢谢你,Aezaz

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

使用过滤器或apache/nginx重写可能有更好的方法,但从管理UI的角度来看,这里有两个想法需要考虑(未经测试):

想法1:

您可以随时访问/wp-admin/options-general.php 更改整个网站url:

siteurl

但我不认为你在寻找这个,因为这也会改变主页的url。

想法2:因此,您可以访问/wp-admin/options-permalink.php 然后尝试以下操作:

rewrite

一开始

想法3:

关于页面,您可以尝试使用info 鼻涕虫

--

这不会涵盖你提到的所有内容,但希望这能帮助你。

更新:

以下是您可以尝试进一步探索的内容(我不确定这是否有效):

add_filter( \'rewrite_rules_array\', \'my_rewrites\' );

function my_rewrites( $rules )
{
    $newrules = array();
    foreach ( $rules as $rule => $rewrite )
    {
        if( \'(\' !==  substr( $rule, 0, 1 ) )
            $rule = \'info/\' . $rule;

        unset( $rules[$rule] );
        $newrules[$rule] = $rules[$rule];
    }
    return $newrules;
}
您需要刷新重写规则,但还需要通过过滤器修改链接:post_link, term_link, page_link, tag_link, date_link, ... 等

因此,您可以尝试以下操作:

// expand this to your needs, but there most be a single filter available instead?
$items = array( \'post\', \'page\', \'date\', \'tag\', \'term\', \'year\', \'month\' ); 

foreach( $items as $item )
{
    add_filter( $item . \'_link\', \'my_link\', 99, 2 );
}

function my_link( $permalink, $post ) 
{
   $permalink = str_replace( get_site_url(), get_site_url() . \'/info\',  $permalink );
    return $permalink;
}
我想有更好的挂钩可用,只是更好的尝试方式?

这正是我首先想到的,请检查并修改;-)

结束

相关推荐

Custom permalinks structure

我希望有这样的结构:www.mysite.com/2013 (必须显示2013年的所有职位)www.mysite.com/my-category/2013 (必须显示2013年和“我的类别”类别的所有帖子)www.mysite.com/my-category/my-tag/ (必须显示所有类别为“我的类别”和标记为“我的标记”的帖子)www.mysite.com/my-category/ (必须显示“我的类别”类别的所有帖子)www.mysite.com/my-