如果自定义字段等于页面标题,则自动 select parent 页面
Automatically select parent page if custom field equals page title
当自定义字段和页面标题相同时,是否可以在创建页面时自动 set/select 一个 parent 页面?
示例:
我有以下页面层次结构:
- 供应商
- 提供商页面(页面标题 = user1)
- 提供商包
当创建一个新页面时,自定义字段值为“user1”,并且有一个标题为“user1”的页面。然后,提供商页面(在本例中为“user1”)应自动设置为所创建页面(提供商包页面)的 parent。
我希望它有点清楚,因为我注意到自己很难解释。
这样的事情可能吗?
您可以使用 post 编辑挂钩 filters/actions 来实现。像这样
add_action( 'edit_post', 'parentsetter_save_post' );
function parentsetter_save_post()
{
global $post;
$custom_field=get_post_meta($post->ID,'customfieldname',true);
if ($custom_field!=''){
$parent_page=get_page_by_title($custom_field);
if (!empty($parent_page) and $post->post_parent!=$parent_page->ID){
global $wpdb;
$wpdb->query($wpdb->prepare("update $wpdb->posts set post_parent=%d
where ID=%d",$parent_page->ID,$post->ID));
}
}
}
只需将 "customfieldname" 替换为您的自定义字段名称即可。
当自定义字段和页面标题相同时,是否可以在创建页面时自动 set/select 一个 parent 页面?
示例:
我有以下页面层次结构:
- 供应商
- 提供商页面(页面标题 = user1)
- 提供商包
- 提供商页面(页面标题 = user1)
当创建一个新页面时,自定义字段值为“user1”,并且有一个标题为“user1”的页面。然后,提供商页面(在本例中为“user1”)应自动设置为所创建页面(提供商包页面)的 parent。
我希望它有点清楚,因为我注意到自己很难解释。
这样的事情可能吗?
您可以使用 post 编辑挂钩 filters/actions 来实现。像这样
add_action( 'edit_post', 'parentsetter_save_post' );
function parentsetter_save_post()
{
global $post;
$custom_field=get_post_meta($post->ID,'customfieldname',true);
if ($custom_field!=''){
$parent_page=get_page_by_title($custom_field);
if (!empty($parent_page) and $post->post_parent!=$parent_page->ID){
global $wpdb;
$wpdb->query($wpdb->prepare("update $wpdb->posts set post_parent=%d
where ID=%d",$parent_page->ID,$post->ID));
}
}
}
只需将 "customfieldname" 替换为您的自定义字段名称即可。