wppaste
WordPress

WP_REST_Comments_Controller::create_item_permissions_check( WP_REST_Request $request ): true|WP_Error

Since
4.7.0
Source
wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:499
Checks if a given request has access to create a comment.

Compatibility

WordPress
since 4.7.0
PHP
7.4–8.6-dev
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0), and compiles on PHP 7.4 through 8.6-dev.

Parameters

$requestWP_REST_Request
Full details about the request.

Return value

true|WP_Error
True if the request has access to create items, error object otherwise.

Performance profile

How much work a call to WP_REST_Comments_Controller::create_item_permissions_check() does, and what it touches: the algorithmic scaling, the Zend instruction count per call across PHP versions, the hooks it hands control to, and the core code that calls it. Measured from the compiled opcodes, not a stopwatch, so every number is identical on any machine running the same PHP version, and every function in core is ranked by cost.

Cost class
Heavy

Reaches the database via get_post().

Scaling
Constant

No loop in the body: the same number of instructions runs whatever you pass in.

Instructions
31–112

Executed per call on PHP 8.5, depending on the branch taken. The body compiles to 265.

Plugin surface
1 hook

Third-party callbacks on 'rest_allow_anonymous_comments' run inside this call, and their cost is not bounded by anything here.

Called by
0

Nothing in core calls this; the cost is only what you spend yourself.

What it touches

  • optionoption read or writeget_option()called directly
  • hookthird-party callbacksapply_filters()called directly
  • querycontent queryget_post()called directly
  • cacheobject cachewp_cache_get()one call below WP_REST_Comments_Controller::create_item_permissions_check()
  • serializeserialisationmaybe_unserialize()one call below WP_REST_Comments_Controller::create_item_permissions_check()

Further down the call graph this can also reach transient. That is the worst case, several calls deep and usually down an error path, not what a normal call pays.

What one call costs · 175 distinct outcomes

One number would be a lie: the work depends on which branch runs. These are every distinct cost WP_REST_Comments_Controller::create_item_permissions_check() can have, taken from its control-flow graph on PHP 8.5.

WhenInstructionsCalls it makes
$value && is_user_logged_in() && !isset($request) && empty($request)31–39is_user_logged_in(), is_user_logged_in(), __(), edit_post()
$value && is_user_logged_in() && !isset($request) && empty($request)35–51is_user_logged_in(), is_user_logged_in(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && empty($request)36–44is_user_logged_in(), is_user_logged_in(), get_current_user_id(), __(), edit_post()
$value && is_user_logged_in() && !isset($request) && !empty($request) && !current_user_can()37is_user_logged_in(), is_user_logged_in(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request)38–54is_user_logged_in(), is_user_logged_in(), get_post(), __()
$value && is_user_logged_in() && !current_user_can()38–49is_user_logged_in(), is_user_logged_in(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && !current_user_can()38–54is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && current_user_can() && empty($request)40–58is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && empty($request)40–56is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && !empty($request) && !current_user_can()41–49is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request)42–66is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), __()
$value && !get_option() && !isset($request) && empty($request)42–50is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), __(), edit_post()
163 further outcomes, up to 112 instructions
$value && is_user_logged_in() && !empty($request) && !current_user_can()42is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request)43–59is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && empty($request)44–63is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && !isset($request) && !empty($request)45–60is_user_logged_in(), is_user_logged_in(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && !current_user_can()45–61is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && empty($request)46–62is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && isset($request) && !empty($request) && !current_user_can()46–54is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && current_user_can()47–73is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), __()
$value && is_user_logged_in() && !empty($request)47–71is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), __()
$value && !get_option() && empty($request)47–55is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), __(), edit_post()
$value && is_user_logged_in() && isset($request) && !current_user_can()47–66is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_read_post_permission()48–58is_user_logged_in(), is_user_logged_in(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !isset($request) && !empty($request) && !current_user_can()48is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request)49–72is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !isset($request) && !empty($request)49–65is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && empty($request)49–68is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && !current_user_can()49–60is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request)50–65is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && current_user_can()50–63is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && isset($request) && !empty($request)50–58is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can()51–78is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), __()
$value && !get_option() && current_user_can() && empty($request)51–69is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && empty($request)51–67is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), __(), edit_post()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_read_post_permission()52–70is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && !current_user_can()52–60is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && ->check_read_post_permission()53–63is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !isset($request) && !empty($request) && !->check_read_post_permission()53–62is_user_logged_in(), is_user_logged_in(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request)53–77is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), __()
$value && !get_option() && !empty($request) && !current_user_can()53is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()54–64is_user_logged_in(), is_user_logged_in(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && current_user_can()54–79is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && !empty($request)54–77is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !empty($request)54–70is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), __()
$value && is_user_logged_in() && isset($request)54–73is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !current_user_can()54–65is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request)55–68is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request)56–71is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request)56–83is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), __()
$value && !get_option() && isset($request) && current_user_can() && empty($request)56–74is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && !current_user_can()56–72is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_read_post_permission() && !comments_open()57–66is_user_logged_in(), is_user_logged_in(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && !empty($request) && current_user_can() && ->check_read_post_permission()57–77is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && current_user_can() && !empty($request)57–78is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), __()
$value && is_user_logged_in() && !empty($request) && ->check_read_post_permission()57–75is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !isset($request) && !empty($request) && !->check_read_post_permission()57–74is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !empty($request) && !current_user_can()57–65is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()58–76is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && !->check_read_post_permission()58–67is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can()58–84is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !empty($request) && current_user_can()58–84is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), __()
$value && !get_option() && !empty($request)58–82is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), __()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()59–69is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !isset($request) && !empty($request) && ->check_read_post_permission()59–69is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()59–68is_user_logged_in(), is_user_logged_in(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can()59–72is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && !isset($request) && !empty($request)60–83is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_read_post_permission() && !comments_open()61–78is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && ->check_read_post_permission()61–82is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request)61–76is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && current_user_can()61–74is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && isset($request) && !current_user_can()61–77is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && ->check_read_post_permission() && !comments_open()62–71is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && !empty($request) && current_user_can() && !->check_read_post_permission()62–81is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && !->check_read_post_permission()62–79is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()63–72is_user_logged_in(), is_user_logged_in(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission()63–83is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()63–81is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !isset($request) && !empty($request) && ->check_read_post_permission()63–81is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()63–80is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request)63–89is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && isset($request) && !empty($request) && current_user_can()63–89is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), __()
$value && is_user_logged_in() && current_user_can() && !empty($request)64–84is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !empty($request) && ->check_read_post_permission()64–74is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()64–73is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && !->check_read_post_permission()64–73is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && !empty($request)64–77is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()65–75is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && current_user_can()65–90is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !empty($request)65–88is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && !empty($request) && current_user_can() && ->check_read_post_permission() && !comments_open()66–85is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && !empty($request) && ->check_read_post_permission() && !comments_open()66–83is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission()66–87is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request)66–87is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), __()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && !->check_read_post_permission()66–86is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && current_user_can()66–79is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), __(), edit_post()
$value && !get_option() && !empty($request)66–79is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()67–84is_user_logged_in(), is_user_logged_in(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && current_user_can() && !empty($request) && ->check_read_post_permission()67–82is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission()67–88is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()68–77is_user_logged_in(), is_user_logged_in(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !isset($request) && !empty($request) && ->check_read_post_permission() && !comments_open()68–77is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && current_user_can() && ->check_read_post_permission()68–88is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && current_user_can() && !empty($request)68–89is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), __()
$value && !get_option() && !empty($request) && ->check_read_post_permission()68–86is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && !->check_read_post_permission()68–87is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()68–85is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && !->check_read_post_permission()68–85is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()69–87is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && !->check_read_post_permission()69–78is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && ->check_read_post_permission() && !comments_open()70–90is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()70–80is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()70–79is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !empty($request) && current_user_can()70–95is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && !->check_read_post_permission()71–91is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !empty($request)71–84is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), __(), sprintf(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()72–91is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()72–89is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !isset($request) && !empty($request) && ->check_read_post_permission() && !comments_open()72–89is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && current_user_can() && !empty($request) && !->check_read_post_permission()72–86is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()72–93is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && !->check_read_post_permission()72–92is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()73–88is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && ->check_read_post_permission() && !comments_open()73–82is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request)73–93is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && ->check_read_post_permission()73–93is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && isset($request) && current_user_can() && !empty($request)73–94is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), __()
$value && !get_option() && !empty($request) && current_user_can() && !->check_read_post_permission()73–92is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !empty($request) && !->check_read_post_permission()73–90is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()74–83is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission()74–94is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()74–92is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()74–91is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission() && !comments_open()75–95is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && current_user_can() && !empty($request)75–95is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()75–84is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && current_user_can() && !empty($request) && ->check_read_post_permission() && !comments_open()76–90is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()76–96is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission()76–91is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && current_user_can() && ->check_read_post_permission() && !comments_open()77–96is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && ->check_read_post_permission() && !comments_open()77–94is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()77–97is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !isset($request) && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()78–95is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && current_user_can() && !empty($request) && ->check_read_post_permission()78–93is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && is_user_logged_in() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()78–92is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && !->check_read_post_permission()78–97is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()79–88is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission()79–99is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && !->check_read_post_permission()79–98is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()79–96is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && current_user_can() && !empty($request)80–100is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()81–101is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && !->check_read_post_permission()81–95is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()82–96is_user_logged_in(), is_user_logged_in(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()82–97is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && ->check_read_post_permission() && !comments_open()82–101is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()83–102is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()83–100is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission()83–98is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open()
$value && !get_option() && current_user_can() && !empty($request) && !->check_read_post_permission()83–97is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()84–99is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && !->check_read_post_permission()84–103is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission() && !comments_open()85–99is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && current_user_can() && !empty($request) && ->check_read_post_permission() && !comments_open()87–101is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()87–101is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && !empty($request) && current_user_can() && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()88–107is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && !->check_read_post_permission()88–102is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission()89–104is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open()
$value && !get_option() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()89–103is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && is_user_logged_in() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()91–105is_user_logged_in(), is_user_logged_in(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && ->check_read_post_permission() && !comments_open()92–106is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()93–107is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && !->check_read_post_permission()94–108is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), __(), rest_authorization_required_code(), status()
$value && !get_option() && isset($request) && current_user_can() && !empty($request) && ->check_post_type_supports_notes() && ->check_read_post_permission() && !comments_open()98–112is_user_logged_in(), is_user_logged_in(), get_option(), apply_filters(), get_current_user_id(), current_user_can(), current_user_can(), current_user_can(), get_post(), ->check_post_type_supports_notes(), ->check_read_post_permission(), comments_open(), __()

This body has more branch combinations than are worth enumerating, so the table covers the outcomes found first rather than every one that exists.

Across PHP versions

PHPCompiledExecutedBranchesNotes
8.6-dev26531–11229
8.526531–11229
8.426531–11229
8.326531–11229
8.226531–11229
8.126531–112291 more instruction than PHP 7.4
7.426431–11129

An instruction is not a fixed amount of time, so a matching count is not necessarily the same speed; what it rules out is a difference in the work itself.

Hooks and filters fired · 1

One hook fires while WP_REST_Comments_Controller::create_item_permissions_check() runs, in this order:

  1. apply_filters( rest_allow_anonymous_comments )filterline 531 (+32 into the body)

    Filters whether comments can be created via the REST API without authentication.

Uses · 12

Source code

	public function create_item_permissions_check( $request ) {		$is_note = ! empty( $request['type'] ) && 'note' === $request['type']; 		if ( ! is_user_logged_in() && $is_note ) {			return new WP_Error(				'rest_comment_login_required',				__( 'Sorry, you must be logged in to comment.' ),				array( 'status' => 401 )			);		} 		if ( ! is_user_logged_in() ) {			if ( get_option( 'comment_registration' ) ) {				return new WP_Error(					'rest_comment_login_required',					__( 'Sorry, you must be logged in to comment.' ),					array( 'status' => 401 )				);			} 			/**			 * Filters whether comments can be created via the REST API without authentication.			 *			 * Enables creating comments for anonymous users.			 *			 * @since 4.7.0			 *			 * @param bool $allow_anonymous Whether to allow anonymous comments to			 *                              be created. Default `false`.			 * @param WP_REST_Request $request Request used to generate the			 *                                 response.			 */			$allow_anonymous = apply_filters( 'rest_allow_anonymous_comments', false, $request ); 			if ( ! $allow_anonymous ) {				return new WP_Error(					'rest_comment_login_required',					__( 'Sorry, you must be logged in to comment.' ),					array( 'status' => 401 )				);			}		} 		// Limit who can set comment `author`, `author_ip` or `status` to anything other than the default.		if ( isset( $request['author'] ) && get_current_user_id() !== $request['author'] && ! current_user_can( 'moderate_comments' ) ) {			return new WP_Error(				'rest_comment_invalid_author',				/* translators: %s: Request parameter. */				sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'author' ),				array( 'status' => rest_authorization_required_code() )			);		} 		if ( isset( $request['author_ip'] ) && ! current_user_can( 'moderate_comments' ) ) {			if ( empty( $_SERVER['REMOTE_ADDR'] ) || $request['author_ip'] !== $_SERVER['REMOTE_ADDR'] ) {				return new WP_Error(					'rest_comment_invalid_author_ip',					/* translators: %s: Request parameter. */					sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'author_ip' ),					array( 'status' => rest_authorization_required_code() )				);			}		} 		if ( $is_note && ! empty( $request['post'] ) && ! current_user_can( 'edit_post', (int) $request['post'] ) ) {			return new WP_Error(				'rest_cannot_create_note',				__( 'Sorry, you are not allowed to create notes for this post.' ),				array( 'status' => rest_authorization_required_code() )			);		} 		$edit_cap = $is_note ? array( 'edit_post', (int) $request['post'] ) : array( 'moderate_comments' );		if ( isset( $request['status'] ) && ! current_user_can( ...$edit_cap ) ) {			return new WP_Error(				'rest_comment_invalid_status',				/* translators: %s: Request parameter. */				sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'status' ),				array( 'status' => rest_authorization_required_code() )			);

Changelog

Introduced in 4.7.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.