Change slug with custom field

时间:2012-08-07 作者:user1568901

我想用自定义字段更改帖子的slug。

例如,如果自定义字段为“关键字”,则我的帖子链接将变为:mysite.com/keyword.

如果自定义字段为空,我想生成一个随机键,如mysite.com/xV5f7A.

在不改变wordpress核心的情况下,我如何做到这一点?

欢迎提出任何想法!谢谢

1 个回复
SO网友:ifdion

slug保存在wp\\u posts上,而自定义字段保存在wp\\u posts\\u meta上。如果您想这样做,可以在save\\u post上使用一个动作挂钩,该挂钩将获取自定义字段的值并将其保存为post slug。

这是代码

add_action(\'save_post\', \'set_slug\');

function set_slug($post_id){
    $new_slug = get_post_meta($post_id,\'custom-slug\', true);    
    $post_args = array(
        \'ID\' => $post_id,
        \'post_name\' => $new_slug,
    );

    wp_update_post($post_args);
}

结束

相关推荐

WordPress不考虑模板层次结构(获取index.php而不是single.php或page.php)

我在开发自定义主题时遇到了一个奇怪的错误。编辑完自定义帖子类型单一视图的模板后,我继续处理页面的模板文件,我发现Wordpress实际上是指向索引的。php模板文件而不是页面。php在我的主题中用于生成页面外观。我尝试在“阅读”设置中更改网站主页和博客主页的设置。我尝试刷新permalinks结构(通常使用%postname%)。我还尝试恢复到标准/=post\\u id结构。在这种情况下,效果很好。。。但是任何带有%postname%的东西都不起作用。我禁用了插件,但没有任何更改。它只是拒绝与漂亮的pe