wordpress / latest / classes / wp_xmlrpc_server / _toggle_sticky.html

wp_xmlrpc_server::_toggle_sticky( array $post_data, bool $update = false ): void|IXR_Error

This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

Encapsulate the logic for sticking a post and determining if the user has permission to do so

Parameters

$post_data array Required
$update bool Optional

Default: false

Return

void|IXR_Error

Source

File: wp-includes/class-wp-xmlrpc-server.php. View all references

private function _toggle_sticky( $post_data, $update = false ) {
	$post_type = get_post_type_object( $post_data['post_type'] );

	// Private and password-protected posts cannot be stickied.
	if ( 'private' === $post_data['post_status'] || ! empty( $post_data['post_password'] ) ) {
		// Error if the client tried to stick the post, otherwise, silently unstick.
		if ( ! empty( $post_data['sticky'] ) ) {
			return new IXR_Error( 401, __( 'Sorry, you cannot stick a private post.' ) );
		}

		if ( $update ) {
			unstick_post( $post_data['ID'] );
		}
	} elseif ( isset( $post_data['sticky'] ) ) {
		if ( ! current_user_can( $post_type->cap->edit_others_posts ) ) {
			return new IXR_Error( 401, __( 'Sorry, you are not allowed to make posts sticky.' ) );
		}

		$sticky = wp_validate_boolean( $post_data['sticky'] );
		if ( $sticky ) {
			stick_post( $post_data['ID'] );
		} else {
			unstick_post( $post_data['ID'] );
		}
	}
}

Uses

Uses Description

Changelog

Version Description
4.3.0 Introduced.

© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_xmlrpc_server/_toggle_sticky