acf_get_valid_post_id() ACF 5.0.0
This function will return a valid post_id based on the current screen / parameter
Хуки из функции
Возвращает
$post_id. (mixed)
Использование
acf_get_valid_post_id( $post_id );
- $post_id **
- -
Список изменений
С версии 5.0.0 | Введена. |
Код acf_get_valid_post_id() acf get valid post id ACF 5.9.1
function acf_get_valid_post_id( $post_id = 0 ) {
// allow filter to short-circuit load_value logic
$preload = apply_filters( "acf/pre_load_post_id", null, $post_id );
if( $preload !== null ) {
return $preload;
}
// vars
$_post_id = $post_id;
// if not $post_id, load queried object
if( !$post_id ) {
// try for global post (needed for setup_postdata)
$post_id = (int) get_the_ID();
// try for current screen
if( !$post_id ) {
$post_id = get_queried_object();
}
}
// $post_id may be an object
if( is_object($post_id) ) {
// post
if( isset($post_id->post_type, $post_id->ID) ) {
$post_id = $post_id->ID;
// user
} elseif( isset($post_id->roles, $post_id->ID) ) {
$post_id = 'user_' . $post_id->ID;
// term
} elseif( isset($post_id->taxonomy, $post_id->term_id) ) {
$post_id = acf_get_term_post_id( $post_id->taxonomy, $post_id->term_id );
// comment
} elseif( isset($post_id->comment_ID) ) {
$post_id = 'comment_' . $post_id->comment_ID;
// default
} else {
$post_id = 0;
}
}
// allow for option == options
if( $post_id === 'option' ) {
$post_id = 'options';
}
// append language code
if( $post_id == 'options' ) {
$dl = acf_get_setting('default_language');
$cl = acf_get_setting('current_language');
if( $cl && $cl !== $dl ) {
$post_id .= '_' . $cl;
}
}
// filter for 3rd party
$post_id = apply_filters('acf/validate_post_id', $post_id, $_post_id);
// return
return $post_id;
}