为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
米脂 2023-07-08 17:28:33
我是 WordPress 新手,正在查看表下的数据库wp_posts,注意到一些菜单项行 (post_type= nav_menu_item) 的post_name值是数字,有些是菜单标签的小写文本值,没有空格。我没有明确设置这些。它们是如何生成的以及如何使用 WP 管理员修改这些值?
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

当您将新项目添加到 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 必须是唯一的,并且上述方法可能会导致不可预测的结果,正如该方法自己的原始开发人员所指出的那样。



查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信