我有一些正在检查post_parent
ID的args将子页面添加到元数据库的选择菜单中。
但是我不想使用页面的ID,因为这可能会改变,但slug总是一样的。
// POST
array(
'name' => esc_html__( 'Select the previous page for the button link', 'uhd' ),
'id' => "{$prefix}prev_target",
'type' => 'post',
// Post type
'post_type' => 'page',
// Field type, either 'select' or 'select_advanced' (default)
'field_type' => 'select_advanced',
'placeholder' => esc_html__( 'Select an Item', 'uhd' ),
// Query arguments (optional). No settings means get all published posts
'query_args' => array(
'post_status' => 'publish',
'posts_per_page' => - 1,
'post_parent' => 18,
),
),
相同的参数
答案 0 :(得分:1)
您可以使用get_page_by_path()获取所需slug的帖子ID,然后将结果传递给args。例如:
$parent_post = get_page_by_path( 'full/slug' );
$args = array(
[...]
'query_args' => array(
'post_parent' => $parent_post->ID,
),
);
如果这是一个自定义帖子类型,您还需要传递它:
$parent_post = get_page_by_path( 'full/slug', OBJECT, 'post-type' );
所有这一切都说,通常一个帖子的slu is是可以改变的东西,而不是它的ID。也许您有一些独特的使用场景,但slug是用户可编辑的(或插件可编辑),而帖子ID在创建帖子后保持不变。