WordPress:如何为Products自定义文章类型设置Brands作为父页面选项
解决Products自定义文章类型关联Brands作为父页面的方案
嘿,作为WordPress新手碰到这种自定义文章类型的关联需求很正常,我给你拆解几个实用的解决方案,从代码修改到无代码插件都有,你可以根据自己的情况选:
方法一:用代码修改原生父页面下拉选项(轻量且贴合需求)
这个方法直接修改WordPress原生的「父页面」下拉框,让它只显示Brands类型的内容,不需要额外插件:
- 准备代码:复制下面的代码,注意替换其中的
products和brands——这两个是你在CPT UI里创建自定义文章类型时设置的「Slug」(如果你的Brands slug是brand,就把'brands'改成'brand'):
add_filter( 'page_attributes_dropdown_pages_args', 'custom_product_parent_dropdown', 10, 2 ); function custom_product_parent_dropdown( $args, $post ) { // 只针对Products类型的文章生效 if ( 'products' == $post->post_type ) { // 把下拉选项的来源改成Brands自定义文章类型 $args['post_type'] = 'brands'; // 可选:设置按品牌名称升序排列,方便查找 $args['orderby'] = 'title'; $args['order'] = 'ASC'; } return $args; }
添加代码的安全方式:
- 如果你怕改坏主题的
functions.php,推荐安装「Code Snippets」插件(WordPress官方插件库就能找到),激活后新建一个代码片段,粘贴上面的代码,保存并启用即可。 - 如果你直接改主题文件,记得先备份主题,或者用子主题的
functions.php,避免主题更新后代码丢失。
- 如果你怕改坏主题的
验证效果:去编辑或新建Products文章,打开「页面属性」面板,父页面的下拉框就会显示所有Brands的内容了~
方法二:用自定义字段插件实现关联(无代码,更灵活)
如果不想碰代码,推荐用Advanced Custom Fields(ACF) 这个老牌插件,免费版完全够用,还能给你以后扩展其他字段留余地:
步骤:
- 在WordPress后台安装并激活ACF插件。
- 进入「自定义字段」→「添加新字段组」,命名比如「产品关联品牌」。
- 点击「添加字段」,字段类型选择「文章」,设置:
- 字段标签:比如「关联品牌」
- 文章类型:只勾选你创建的「Brands」
- 外观:选择「下拉菜单」或者「单选按钮」,体验和原生父页面类似
- 位置规则:设置为「文章类型 → 等于 → Products」,这样只有编辑Products时才会显示这个字段。
- 保存字段组,之后去编辑Products文章,就能看到这个关联字段,直接选择对应的品牌即可。
优点:比原生父页面关联更灵活,比如以后你想让一个产品关联多个品牌,或者需要在前端展示品牌信息时,ACF的字段调用会更方便,而且不会占用原生的父页面功能。
方法三:专门的文章关联插件(适合复杂关联需求)
如果以后你需要更复杂的关联(比如双向关联:从品牌页也能看到关联的产品,或者多对多关联),可以试试Posts 2 Posts插件:
- 激活插件后,进入「连接」→「新建连接类型」,设置连接的两个文章类型为「Products」和「Brands」,可以设置连接的方向(比如「Products属于Brands」),保存后编辑页面就会出现关联选择框,操作很直观。
新手建议
如果你只是需要简单的「产品归属品牌」的关联,方法一或者方法二都可以:
- 想要贴合原生「父页面」的体验,选方法一;
- 不想碰代码,且以后可能加其他自定义字段,选方法二更合适。
内容的提问来源于stack exchange,提问作者dr.calix
相关产品推荐
相关产品推荐

