WordPress自定义插件(终结点)并比较所有链接

时间:2018-11-07 作者:l6ls

我处理one i18n函数。它将与细分曲面一起工作。例如:eg.com/hello-world/en

对此我表示支持EP_ALL 对于WP自定义端点。

function lang_add_endpoints(){
    add_rewrite_endpoint(\'en\', EP_ALL);
    add_rewrite_endpoint(\'de\', EP_ALL);
} 
add_action(\'init\', \'lang_add_endpoints\');
例如:

eg.com/en
eg.com/page/en
eg.com/post(hello-world)/fr
eg.com/10/11/2018/de
and more...
做得很好。现在,我如何添加"/en/ or /de/ or /any/" 如果查询具有"en".

例如:

我有饼干:(我有一个想法,我只是说我的追求)

if($_COOKIE[\'lang\'] == \'en\') :

<a href="eg.com/example/en" >Example</a>
<a href="eg.com/05/11/2018/en" >Example</a>
<a href="eg.com/category/news/en" >Example</a>

elseif($_COOKIE[\'lang\'] == \'de\') :

<a href="eg.com/05/11/2018/de" >Example</a>
<a href="eg.com/tags/computer/de" >Example</a>

endif;

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

所有生成链接的API函数都有过滤器,允许您更改输出。下面是一个涵盖其中大部分内容的快速示例:

function wpd_endpoint_links( $url ){
    if( isset( $_COOKIE[\'lang\'] ) ){
        $url = $url . $_COOKIE[\'lang\'] . \'/\';
    }
    return $url;
}
add_filter( \'post_link\', \'wpd_endpoint_links\' );
add_filter( \'page_link\', \'wpd_endpoint_links\' );
add_filter( \'post_type_link\', \'wpd_endpoint_links\' );
add_filter( \'attachment_link\', \'wpd_endpoint_links\' );
add_filter( \'term_link\', \'wpd_endpoint_links\' );
add_filter( \'author_link\', \'wpd_endpoint_links\' );
add_filter( \'post_type_archive_link\', \'wpd_endpoint_links\' );
add_filter( \'day_link\', \'wpd_endpoint_links\' );
add_filter( \'month_link\', \'wpd_endpoint_links\' );
add_filter( \'year_link\', \'wpd_endpoint_links\' );

结束