acf_revisions::acf_validate_post_id
acf_validate_post_id
This function will modify the $post_id and allow loading values from a revision
Method of the class: acf_revisions{}
No Hooks.
Returns
$post_id. (int)
Usage
$acf_revisions = new acf_revisions(); $acf_revisions->acf_validate_post_id( $post_id, $_post_id );
- $post_id(required)
- .
- $_post_id(required)
- .
Changelog
| Since 5.5.10 | Introduced. |
acf_revisions::acf_validate_post_id() acf revisions::acf validate post id code ACF 6.0.4
function acf_validate_post_id( $post_id, $_post_id ) {
// phpcs:disable WordPress.Security.NonceVerification.Recommended
// bail early if no preview in URL
if ( ! isset( $_GET['preview'] ) ) {
return $post_id;
}
// bail early if $post_id is not numeric
if ( ! is_numeric( $post_id ) ) {
return $post_id;
}
// vars
$k = $post_id;
$preview_id = 0;
// check cache
if ( isset( $this->cache[ $k ] ) ) {
return $this->cache[ $k ];
}
// validate
if ( isset( $_GET['preview_id'] ) ) {
$preview_id = (int) $_GET['preview_id'];
} elseif ( isset( $_GET['p'] ) ) {
$preview_id = (int) $_GET['p'];
} elseif ( isset( $_GET['page_id'] ) ) {
$preview_id = (int) $_GET['page_id'];
}
// phpcs:enable WordPress.Security.NonceVerification.Recommended
// bail early id $preview_id does not match $post_id
if ( $preview_id != $post_id ) {
return $post_id;
}
// attempt find revision
$revision = acf_get_post_latest_revision( $post_id );
// save
if ( $revision && $revision->post_parent == $post_id ) {
$post_id = (int) $revision->ID;
}
// set cache
$this->cache[ $k ] = $post_id;
// return
return $post_id;
}