WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 6 months ago

#21941 assigned enhancement

Deprecate get_post_format_slugs()

Reported by: F J Kaiser Owned by: @…
Milestone: Future Release Priority: normal
Severity: minor Version:
Component: Post Formats Keywords: good-first-bug has-patch dev-feedback close
Focuses: Cc:

Description

I just encountered the get_post_format_slugs() function, which is basically just wrapping get_post_format_strings() and setting the strings as keys too. So its output is an assoc array where the keys equal the values.

The three times core calls it, it does it the following:

// ~/wp-includes/posts.php -> set_post_format()
if ( 'standard' == $format || !in_array( $format, array_keys( get_post_format_slugs() ) ) )

// ~/wp-includes/posts.php -> _post_format_request()
$slugs = get_post_format_slugs();
if ( isset( $slugs[ $qvs['post_format'] ] ) )
	$qvs['post_format'] = 'post-format-' . $slugs[ $qvs['post_format'] ];

// ~/wp-includes/theme.php -> add_theme_support()
switch ( $feature ) {
	case 'post-formats' :
		if ( is_array( $args[0] ) )
			$args[0] = array_intersect( $args[0], array_keys( get_post_format_slugs() ) );
		break;

So in every case it would've been enough to simply call get_post_format_strings().

Do we really need this function?

Attachments (5)

21941.diff (1.8 KB) - added by MikeHansenMe 2 years ago.
first pass.
21941.2.diff (1.8 KB) - added by MikeHansenMe 14 months ago.
21941.3.diff (2.5 KB) - added by lemacarl 7 months ago.
21941.3.2.diff (2.6 KB) - added by lemacarl 7 months ago.
21941.4.diff (2.6 KB) - added by mrahmadawais 7 months ago.
Updated the version from 4.5.0 to 4.6.0

Download all attachments as: .zip

Change History (21)

#1 @F J Kaiser
4 years ago

  • Severity changed from normal to minor

#2 @nacin
3 years ago

  • Component changed from General to Post Formats

@MikeHansenMe
2 years ago

first pass.

#3 @MikeHansenMe
2 years ago

  • Keywords has-patch needs-unit-tests added

#4 @MikeHansenMe
14 months ago

  • Keywords needs-unit-tests removed

21941.2.diff is a refresh. It looks like we now have tests for add_theme_support() and set_post_format(). I think these tests cover all the usage of get_post_format_slugs.

#5 @swissspidy
11 months ago

  • Keywords good-first-bug needs-patch added; 2nd-opinion has-patch removed

21941.2.diff needs a small refresh.

Deprecated functions are usually moved to wp-includes/deprecated.php. They also need proper inline docs, see https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/php/#1-2-deprecated-functions

@lemacarl
7 months ago

#6 @lemacarl
7 months ago

  • Keywords has-patch added; needs-patch removed

@lemacarl
7 months ago

#7 follow-up: @lemacarl
7 months ago

Sorry I am new @ this. 21941.3.2.diff is pretty much the same as 21941.3.diff only I had missed out a couple of things

#8 @swissspidy
7 months ago

  • Milestone changed from Awaiting Review to 4.6

@lemacarl Thanks, that looks good! Just the version number needs to be updated, but fine otherwise.

I'll try to test it when I get the chance.

@mrahmadawais
7 months ago

Updated the version from 4.5.0 to 4.6.0

#9 in reply to: ↑ 7 @mrahmadawais
7 months ago

  • Keywords dev-feedback added

Replying to swissspidy:

@swissspidy Just tested and updated the version # in the patch. Fine at my end. 21941.4.diff https://core.trac.wordpress.org/attachment/ticket/21941/21941.4.diff

#10 @swissspidy
7 months ago

  • Summary changed from Remove get_post_format_slugs() to Deprecate get_post_format_slugs()

This ticket was mentioned in Slack in #core by chriscct7. View the logs.


6 months ago

#12 @ocean90
6 months ago

I don't see the need for deprecating the function. It looks like the function is used by some themes and plugins, see https://github.com/search?o=desc&q=get_post_format_slugs%28%29&s=indexed&type=Code&utf8=%E2%9C%93.

@ipstenu: Could you help us with slurping the plugin repo for get_post_format_slugs)?

#13 @chriscct7
6 months ago

  • Owner set to @…
  • Status changed from new to assigned

#14 @Ipstenu
6 months ago

Slurping....

18 plugins.

plugins/askapache-debug-viewer/askapache-debug-viewer.php:2442:			$d=get_post_format_slugs(); $out['get_post_format_slugs'] = $d;
plugins/bulk-convert-post-format/bulk-convert-post-format.php:74:		$formats = get_post_format_slugs();
plugins/custom-contact-forms/wp-api/lib/endpoints/class-wp-rest-posts-controller.php:1519:						'enum'        => array_values( get_post_format_slugs() ),
plugins/json-rest-api/lib/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/ozh-tweet-archiver/ozh-ta.php:128:		'post_format'            => 'standard', // can be any of the values returned by get_post_format_slugs()
plugins/post-format-permalink/post-format-permalink.php:91:		$post_format_slugs = implode('|', get_post_format_slugs());
plugins/postie/postie-functions.php:516:    } elseif (in_array($custom_post_type, array_keys(get_post_format_slugs()))) {
plugins/pressbooks/vendor/pressbooks/rest-api/lib/endpoints/class-wp-rest-posts-controller.php:1557:						'enum'        => array_values( get_post_format_slugs() ),
plugins/presstest/mocked/core.php:3739:if( !function_exists( 'get_post_format_slugs' ) ) { function get_post_format_slugs() { return PT_Mime::mime( func_get_args() );  } }
plugins/prograpper/wp-api/lib/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/reactor-core/json-rest-api/lib/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/rest-api/lib/endpoints/class-wp-rest-posts-controller.php:1557:						'enum'        => array_values( get_post_format_slugs() ),
plugins/rest-api-search/lib/class-wp-rest-search-controller.php:296:                        'enum'        => array_values ( get_post_format_slugs () ),
plugins/rest-json/include/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/set-aside/set-aside.php:68:      <?php if ( !function_exists('get_post_format_slugs') ) : ?>
plugins/set-aside/set-aside.php:89:                <?php foreach ( array_diff ( get_post_format_slugs(), $post_formats[0], array ( 'standard' ) ) as $format ) : ?>
plugins/set-aside/set-aside.php:97:      <?php endif; // !function_exists('get_post_format_slugs') ?>
plugins/the-pressengine/lib/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/worona/json-rest-api/lib/class-wp-json-posts.php:932:			$formats = get_post_format_slugs();
plugins/wp-bigapp/lib/json/class-wp-json-posts.php:955:			$formats = get_post_format_slugs();

This ticket was mentioned in Slack in #core by voldemortensen. View the logs.


6 months ago

#16 @voldemortensen
6 months ago

  • Keywords close added
  • Milestone changed from 4.6 to Future Release
Note: See TracTickets for help on using tickets.