wppaste
WordPress

wp_xmlrpc_server::_prepare_post( array $post, array $fields ): array

Source
wp-includes/class-wp-xmlrpc-server.php:917
Prepares post data for return in an XML-RPC object.

Compatibility

WordPress
core
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

$postarray
The unprepared post data.
$fieldsarray
The subset of post type fields to return.

Return value

array
The prepared post data.

Performance profile

How much work a call to wp_xmlrpc_server::_prepare_post() 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
Scales with input

The body loops, so the work grows with what you pass in.

Instructions
125–220

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

Plugin surface
1 hook

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

Called by
3

3 places in core call this, so the cost is paid more often than your own code shows.

What it touches

  • querycontent queryget_post()called directly
  • hookthird-party callbacksapply_filters()called directly
  • optionoption read or writeget_option()one call below wp_xmlrpc_server::_prepare_post()

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

What one call costs · 96 distinct outcomes

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

WhenInstructionsCalls it makes
always125–129->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), apply_filters()
always131–135->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), apply_filters()
always132–136->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), apply_filters()
!$fields132–136->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), apply_filters()
empty($enclosures)136–140->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_post_meta(), apply_filters()
always138–142->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), apply_filters()
!$fields138–142->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), apply_filters()
always139–143->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), apply_filters()
always140–148->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always140–145->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), apply_filters()
empty($enclosures)142–146->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_post_meta(), apply_filters()
empty($enclosures)143–147->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
84 further outcomes, up to 220 instructions
empty($enclosures)143–147->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), apply_filters()
always145–149->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), apply_filters()
always146–154->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always146–151->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), apply_filters()
always147–155->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always147–155->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always147–152->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), apply_filters()
!$fields147–152->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), apply_filters()
empty($enclosures)149–153->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)149–153->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), apply_filters()
empty($enclosures)150–154->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)151–159->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
empty($enclosures)151–156->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_post_meta(), apply_filters()
always153–161->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always153–161->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always153–158->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), apply_filters()
!$fields153–158->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), apply_filters()
always154–162->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always154–159->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), apply_filters()
always155–164->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
empty($enclosures)156–160->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)157–165->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
empty($enclosures)157–162->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_post_meta(), apply_filters()
$fields && empty($enclosures)158–166->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)158–166->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
empty($enclosures)158–163->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)158–163->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), apply_filters()
always160–168->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always160–165->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), apply_filters()
!empty($enclosures)161–165->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
always161–170->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always162–171->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always162–171->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
$fields && empty($enclosures)164–172->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)164–172->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
empty($enclosures)164–169->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)164–169->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), apply_filters()
empty($enclosures)165–173->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)165–170->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)166–175->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
!empty($enclosures)167–171->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)168–172->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)168–172->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
always168–177->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
always168–177->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), apply_filters()
always169–178->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
empty($enclosures)171–179->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)171–176->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)172–181->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
$fields && empty($enclosures)173–182->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)173–182->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
!empty($enclosures)174–178->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)174–178->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)175–179->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
always175–184->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), apply_filters()
!empty($enclosures)176–184->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)176–181->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
$fields && empty($enclosures)179–188->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
empty($enclosures)179–188->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), apply_filters()
empty($enclosures)180–189->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
!empty($enclosures)181–185->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)182–190->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)182–187->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
$fields && !empty($enclosures)183–191->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)183–191->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)183–188->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)183–188->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
empty($enclosures)186–195->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), apply_filters()
$fields && !empty($enclosures)189–197->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)189–197->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)189–194->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)189–194->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)190–198->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)190–195->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)191–200->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)196–204->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)196–201->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)197–206->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
$fields && !empty($enclosures)198–207->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)198–207->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
$fields && !empty($enclosures)204–213->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)204–213->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)205–214->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()
!empty($enclosures)211–220->_convert_date(), ->_convert_date_gmt(), ->_convert_date(), ->_convert_date_gmt(), get_permalink(), is_sticky(), get_post_thumbnail_id(), current_theme_supports(), get_post(), ->_prepare_media_item(), get_post_format(), array_flip(), array_intersect_key(), array_merge(), get_object_taxonomies(), wp_get_object_terms(), ->get_custom_fields(), get_post_meta(), explode(), htmlspecialchars(), apply_filters()

Across PHP versions

PHPCompiledExecutedBranchesNotes
8.6-dev234125–22013
8.5234125–22013
8.4234125–2201321 fewer instructions than PHP 8.3
8.3255140–24113
8.2255140–24113
8.1255140–24113
7.4255140–24113

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_xmlrpc_server::_prepare_post() runs, in this order:

  1. apply_filters( xmlrpc_prepare_post )filterline 1007 (+90 into the body)

    Filters XML-RPC-prepared date for the given post.

Uses · 15

Show all 15

Used by · 3

Source code

	protected function _prepare_post( $post, $fields ) {		// Holds the data for this post. built up based on $fields.		$_post = array( 'post_id' => (string) $post['ID'] ); 		// Prepare common post fields.		$post_fields = array(			'post_title'        => $post['post_title'],			'post_date'         => $this->_convert_date( $post['post_date'] ),			'post_date_gmt'     => $this->_convert_date_gmt( $post['post_date_gmt'], $post['post_date'] ),			'post_modified'     => $this->_convert_date( $post['post_modified'] ),			'post_modified_gmt' => $this->_convert_date_gmt( $post['post_modified_gmt'], $post['post_modified'] ),			'post_status'       => $post['post_status'],			'post_type'         => $post['post_type'],			'post_name'         => $post['post_name'],			'post_author'       => $post['post_author'],			'post_password'     => $post['post_password'],			'post_excerpt'      => $post['post_excerpt'],			'post_content'      => $post['post_content'],			'post_parent'       => (string) $post['post_parent'],			'post_mime_type'    => $post['post_mime_type'],			'link'              => get_permalink( $post['ID'] ),			'guid'              => $post['guid'],			'menu_order'        => (int) $post['menu_order'],			'comment_status'    => $post['comment_status'],			'ping_status'       => $post['ping_status'],			'sticky'            => ( 'post' === $post['post_type'] && is_sticky( $post['ID'] ) ),		); 		// Thumbnail.		$post_fields['post_thumbnail'] = array();		$thumbnail_id                  = get_post_thumbnail_id( $post['ID'] );		if ( $thumbnail_id ) {			$thumbnail_size                = current_theme_supports( 'post-thumbnail' ) ? 'post-thumbnail' : 'thumbnail';			$post_fields['post_thumbnail'] = $this->_prepare_media_item( get_post( $thumbnail_id ), $thumbnail_size );		} 		// Consider future posts as published.		if ( 'future' === $post_fields['post_status'] ) {			$post_fields['post_status'] = 'publish';		} 		// Fill in blank post format.		$post_fields['post_format'] = get_post_format( $post['ID'] );		if ( empty( $post_fields['post_format'] ) ) {			$post_fields['post_format'] = 'standard';		} 		// Merge requested $post_fields fields into $_post.		if ( in_array( 'post', $fields, true ) ) {			$_post = array_merge( $_post, $post_fields );		} else {			$requested_fields = array_intersect_key( $post_fields, array_flip( $fields ) );			$_post            = array_merge( $_post, $requested_fields );		} 		$all_taxonomy_fields = in_array( 'taxonomies', $fields, true ); 		if ( $all_taxonomy_fields || in_array( 'terms', $fields, true ) ) {			$post_type_taxonomies = get_object_taxonomies( $post['post_type'], 'names' );			$terms                = wp_get_object_terms( $post['ID'], $post_type_taxonomies );			$_post['terms']       = array();			foreach ( $terms as $term ) {				$_post['terms'][] = $this->_prepare_term( $term );			}		} 		if ( in_array( 'custom_fields', $fields, true ) ) {			$_post['custom_fields'] = $this->get_custom_fields( $post['ID'] );		} 		if ( in_array( 'enclosure', $fields, true ) ) {			$_post['enclosure'] = array();			$enclosures         = (array) get_post_meta( $post['ID'], 'enclosure' );			if ( ! empty( $enclosures ) ) {				$encdata                      = explode( "\n", $enclosures[0] );				$_post['enclosure']['url']    = trim( htmlspecialchars( $encdata[0] ) );				$_post['enclosure']['length'] = (int) trim( $encdata[1] );				$_post['enclosure']['type']   = trim( $encdata[2] );			}		}

Changelog

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 6.9.7 tag, from src/wp-includes/class-wp-xmlrpc-server.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.