Я пытаюсь получить идентификатор поста, который я редактирую, в functions.php с целью динамического переписывания слага пользовательского типа поста.
Это то, с чем я работаю до сих пор.
function change_post_type_slug( $args, $post_type ) {
if ( 'custom_post' == $post_type ) {
global $post;
$location = get_field('custom_field', $post->ID);
$args['rewrite']['slug'] = $location;
}
return $args;
}
add_filter( 'register_post_type_args', 'change_post_type_slug', 10, 2 );
Я не уверен, срабатывает ли хук register_post_type_args
до того, как я смогу получить удостоверение личности, или это даже лучший способ выполнить то, что я пытаюсь выполнить.Не могу найти там много информации по этому вопросу.
Мне удалось заставить его работать со следующим:
function change_post_type_slug( $args, $post_type ) {
if ( 'lead_page' == $post_type ) {
$post_id = $_GET['post'];
$location = get_field('leadpage_location', $post_id);
$args['rewrite']['slug'] = $location->post_name;
}
return $args;
}
add_filter( 'register_post_type_args', 'change_post_type_slug', 10, 2 );
Однако это привело к уведомлению на внешнем интерфейсе:Notice: Undefined index: post in /path/to/wordpress/functions.php on line 623
Строка 623 - $post_id = $_GET['post'];