为什么有些 Wordpress 菜单 post_name 值为数字而其他值为 slugs?

我是 WordPress 新手,正在查看表下的数据库wp_posts,注意到一些菜单项行 (post_type= nav_menu_item) 的post_name值是数字,有些是菜单标签的小写文本值,没有空格。

我没有明确设置这些。它们是如何生成的以及如何使用 WP 管理员修改这些值?


米脂
浏览 86回答 1
1回答

沧海一幻觉

当您将新项目添加到 WordPress 菜单时,它们的类型可能会有所不同。其中一些项目是帖子或特定类别的直接链接。在这种情况下,默认行为是仅使用数字来设置这些帖子的别名(post_name表中的wp_posts)。但是,当您将自定义链接添加到菜单时,Wordpress 会将其 slug 保存为您为链接设置的标签,或者更接近它的任何内容,删除空格,在必要时创建较长术语的缩写等等,因此使用文本作为它们的鼻涕虫。这就是为什么有些post_names 是数字而另一些是文本的原因:菜单项的来源(帖子链接、类别链接、自定义链接)。现在,至于更改 a 的 slugs nav_menu_item,我不建议这样做,因为它们的标签是在模板中向用户显示的内容,而不是它们的 slugs ;在大多数情况下,这些与最终用户无关。但是,您可以在模板的文件底部添加functions.php类似于以下内容的代码:add_filter('nav_menu_item_args', 'rename-slug' );function rename-slug( $args ) {    $args['rewrite']['slug'] = 'the_new_slug_here'; // "the_new_slug_here" should be replaced by the new slug value you want    return $args;}请注意,slugs 必须是唯一的,并且上述方法可能会导致不可预测的结果,正如该方法自己的原始开发人员所指出的那样。
打开App,查看更多内容
随时随地看视频慕课网APP