通过unctions.php以编程方式重写slug,但返回404

时间:2018-07-23 作者:Bwrites

我想更改某个post类型的slug(在本例中,article) 转换为其自定义字段中的某个值。

我去了函数。php,并将此代码放入。

function na_remove_slug( $post_link, $post, $leavename ) {

if ( \'article\' != $post->post_type || \'publish\' != $post->post_status ) {
    return $post_link;
} 

# get the custom field value here to be the slug
$post_name = get_field(\'filter_category\', $post->ID)->post_name; 
# replace the "article" by the value of the custom field
$post_link = str_replace( \'/\' . $post->post_type . \'/\', "/$post_name/", $post_link ); 
    return $post_link;
}
add_filter( \'post_type_link\', \'na_remove_slug\', 10, 3 );
当我查询自定义帖子类型时,它的slug似乎被更改了,例如:www.example.com/article/some-title 进入www.example.com/design/some-title

哪里design 是我的自定义字段值。

但当我最终访问www.example.com/design/some-title, 我有一个404。但如果我去www.example.com/article/some-title, 它返回正确的网页。

我知道我的代码只会改变链接在显示时的显示方式,但如何使用我修改过的slug正确显示我的单个帖子呢?

如果您需要更多澄清,请随时发表评论。

1 个回复
SO网友:Baikare Sandeep

你可以试试这个plugin, 我想这对你有用。您可以通过单击URL直接更改页面上的URL,以获得所需的任何内容。

希望这会有所帮助。

结束