Yoast\WP\SEO\Elementor\Infrastructure
Request_Post::get_document_id
Retrieves the document ID from the POST request.
Note: this is specific to Elementor' elementor_ajax action. And then the get_document_config internal action. Currently, you can see this in play when:
- showing the Site Settings in the Elementor editor
- going to another Recent post/page in the Elementor editor V2
Метод класса: Request_Post{}
Хуков нет.
Возвращает
int|null. The document ID or null if not found.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_document_id(): ?int;
Код Request_Post::get_document_id() Request Post::get document id Yoast 26.9
private function get_document_id(): ?int {
// phpcs:ignore WordPress.Security.NonceVerification.Missing -- Reason: We are not processing form information.
if ( ! ( isset( $_POST['actions'] ) && \is_string( $_POST['actions'] ) ) ) {
return null;
}
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized,WordPress.Security.NonceVerification.Missing -- Reason: No sanitization needed because we cast to an integer (after JSON decode and type/exist checks),We are not processing form information.
$actions = \json_decode( \wp_unslash( $_POST['actions'] ), true );
if ( ! \is_array( $actions ) ) {
return null;
}
// Elementor sends everything in a `document-{ID}` format.
$action = \array_shift( $actions );
if ( $action === null ) {
return null;
}
// There are multiple action types. We only care about the "get_document_config" one.
if ( ! ( isset( $action['action'] ) && $action['action'] === 'get_document_config' ) ) {
return null;
}
// Return the ID from the data, if it is set and numeric.
if ( isset( $action['data']['id'] ) && \is_numeric( $action['data']['id'] ) ) {
return (int) $action['data']['id'];
}
return null;
}