Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add post format variation to navigation link block #30403

Open
wants to merge 5 commits into
base: trunk
from

Conversation

@talldan
Copy link
Contributor

@talldan talldan commented Mar 31, 2021

Description

Assists with #29793.

Adds a Post Format variation to that navigation link block.

#22600 added the ability to search for a post format, but it appears this was never turned into a block variation, so post formats can only be created as custom links.

This new variation needs an icon. At the moment it just shows the custom post type icon. But I think it's fine to merge like this and add the icon later.

How has this been tested?

  1. Use a theme with post formats. I use Twenty Fourteen.
  2. Create a post and assign it a post format (the UI for this is underneath the publish date in the sidebar of the post editor). Remember the type of post format you used.
  3. Give the post a memorable title and publish it
  4. Create another post
  5. Add the navigation block
  6. Add a Post Format to the navigation block
  7. Search for and use the post format assigned in step 2 (it will probably be shown without you needing to type anything)
  8. Set this as the link
  9. Preview the post
  10. Click the link to the post format
  11. The post formats screen should be displayed showing posts of the format you assigned.

Screenshots

Screenshot 2021-03-31 at 6 50 52 pm

Types of changes

New feature (non-breaking change which adds functionality)

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all *.native.js files for terms that need renaming or removal).
@talldan talldan requested a review from ajitbohra as a code owner Mar 31, 2021
@talldan talldan self-assigned this Mar 31, 2021
@talldan talldan added this to PRs pending review in Navigation editor via automation Mar 31, 2021
$custom_variation_names = array(
'post_tag' => 'tag',
'post_format' => 'format',
);
Comment on lines 236 to 239

This comment has been minimized.

@talldan

talldan Mar 31, 2021
Author Contributor

This kind of thing makes me think the variations could be called the same thing as the the entity names.

@github-actions
Copy link

@github-actions github-actions bot commented Mar 31, 2021

Size Change: +963 B (0%)

Total Size: 1.42 MB

Filename Size Change
build/block-editor/index.js 127 kB -10 B (0%)
build/block-library/common-rtl.css 1.31 kB +212 B (+19%) ⚠️
build/block-library/common.css 1.31 kB +211 B (+19%) ⚠️
build/block-library/index.js 151 kB +10 B (0%)
build/block-library/reset-rtl.css 503 B +128 B (+34%) 🚨
build/block-library/reset.css 504 B +128 B (+34%) 🚨
build/block-library/style-rtl.css 9.25 kB +141 B (+2%)
build/block-library/style.css 9.25 kB +143 B (+2%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.42 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 664 B 0 B
build/block-directory/index.js 8.63 kB 0 B
build/block-directory/style-rtl.css 1 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-editor/style-rtl.css 12.4 kB 0 B
build/block-editor/style.css 12.4 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 112 B 0 B
build/block-library/blocks/audio/style.css 112 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/button/style-rtl.css 551 B 0 B
build/block-library/blocks/button/style.css 551 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 315 B 0 B
build/block-library/blocks/buttons/editor.css 315 B 0 B
build/block-library/blocks/buttons/style-rtl.css 370 B 0 B
build/block-library/blocks/buttons/style.css 370 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 436 B 0 B
build/block-library/blocks/columns/style.css 435 B 0 B
build/block-library/blocks/cover/editor-rtl.css 605 B 0 B
build/block-library/blocks/cover/editor.css 605 B 0 B
build/block-library/blocks/cover/style-rtl.css 1.24 kB 0 B
build/block-library/blocks/cover/style.css 1.24 kB 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 401 B 0 B
build/block-library/blocks/embed/style.css 400 B 0 B
build/block-library/blocks/file/editor-rtl.css 175 B 0 B
build/block-library/blocks/file/editor.css 174 B 0 B
build/block-library/blocks/file/style-rtl.css 248 B 0 B
build/block-library/blocks/file/style.css 248 B 0 B
build/block-library/blocks/freeform/editor-rtl.css 2.45 kB 0 B
build/block-library/blocks/freeform/editor.css 2.45 kB 0 B
build/block-library/blocks/gallery/editor-rtl.css 704 B 0 B
build/block-library/blocks/gallery/editor.css 705 B 0 B
build/block-library/blocks/gallery/style-rtl.css 1.11 kB 0 B
build/block-library/blocks/gallery/style.css 1.1 kB 0 B
build/block-library/blocks/group/editor-rtl.css 160 B 0 B
build/block-library/blocks/group/editor.css 160 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 476 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 281 B 0 B
build/block-library/blocks/latest-comments/style.css 282 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/legacy-widget/editor-rtl.css 398 B 0 B
build/block-library/blocks/legacy-widget/editor.css 399 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 597 B 0 B
build/block-library/blocks/navigation-link/editor.css 597 B 0 B
build/block-library/blocks/navigation-link/style-rtl.css 957 B 0 B
build/block-library/blocks/navigation-link/style.css 955 B 0 B
build/block-library/blocks/navigation/editor-rtl.css 1.13 kB 0 B
build/block-library/blocks/navigation/editor.css 1.13 kB 0 B
build/block-library/blocks/navigation/style-rtl.css 204 B 0 B
build/block-library/blocks/navigation/style.css 205 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/editor-rtl.css 170 B 0 B
build/block-library/blocks/page-list/editor.css 170 B 0 B
build/block-library/blocks/page-list/style-rtl.css 167 B 0 B
build/block-library/blocks/page-list/style.css 167 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B 0 B
build/block-library/blocks/paragraph/editor.css 157 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 247 B 0 B
build/block-library/blocks/paragraph/style.css 248 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 103 B 0 B
build/block-library/blocks/preformatted/style.css 103 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 318 B 0 B
build/block-library/blocks/pullquote/style.css 318 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 83 B 0 B
build/block-library/blocks/query-loop/editor.css 82 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query-title/editor-rtl.css 86 B 0 B
build/block-library/blocks/query-title/editor.css 86 B 0 B
build/block-library/blocks/query/editor-rtl.css 795 B 0 B
build/block-library/blocks/query/editor.css 794 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 165 B 0 B
build/block-library/blocks/search/editor.css 165 B 0 B
build/block-library/blocks/search/style-rtl.css 342 B 0 B
build/block-library/blocks/search/style.css 344 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 251 B 0 B
build/block-library/blocks/separator/style.css 251 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 512 B 0 B
build/block-library/blocks/shortcode/editor.css 512 B 0 B
build/block-library/blocks/site-logo/editor-rtl.css 201 B 0 B
build/block-library/blocks/site-logo/editor.css 201 B 0 B
build/block-library/blocks/site-logo/style-rtl.css 115 B 0 B
build/block-library/blocks/site-logo/style.css 115 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 776 B 0 B
build/block-library/blocks/social-links/editor.css 776 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB 0 B
build/block-library/blocks/social-links/style.css 1.33 kB 0 B
build/block-library/blocks/spacer/editor-rtl.css 317 B 0 B
build/block-library/blocks/spacer/editor.css 317 B 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/table/editor-rtl.css 478 B 0 B
build/block-library/blocks/table/editor.css 478 B 0 B
build/block-library/blocks/table/style-rtl.css 402 B 0 B
build/block-library/blocks/table/style.css 402 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 552 B 0 B
build/block-library/blocks/template-part/editor.css 551 B 0 B
build/block-library/blocks/term-description/editor-rtl.css 90 B 0 B
build/block-library/blocks/term-description/editor.css 90 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/editor-rtl.css 50 B 0 B
build/block-library/blocks/verse/editor.css 50 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 504 B 0 B
build/block-library/blocks/video/editor.css 503 B 0 B
build/block-library/blocks/video/style-rtl.css 187 B 0 B
build/block-library/blocks/video/style.css 187 B 0 B
build/block-library/editor-rtl.css 9.53 kB 0 B
build/block-library/editor.css 9.52 kB 0 B
build/block-library/theme-rtl.css 692 B 0 B
build/block-library/theme.css 693 B 0 B
build/block-serialization-default-parser/index.js 1.87 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/blocks/index.js 48.4 kB 0 B
build/components/index.js 284 kB 0 B
build/components/style-rtl.css 16.2 kB 0 B
build/components/style.css 16.2 kB 0 B
build/compose/index.js 11.2 kB 0 B
build/core-data/index.js 16.6 kB 0 B
build/customize-widgets/index.js 7.33 kB 0 B
build/customize-widgets/style-rtl.css 676 B 0 B
build/customize-widgets/style.css 677 B 0 B
build/data-controls/index.js 838 B 0 B
build/data/index.js 8.89 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 787 B 0 B
build/dom-ready/index.js 576 B 0 B
build/dom/index.js 5.08 kB 0 B
build/edit-navigation/index.js 17.4 kB 0 B
build/edit-navigation/style-rtl.css 2.86 kB 0 B
build/edit-navigation/style.css 2.86 kB 0 B
build/edit-post/index.js 307 kB 0 B
build/edit-post/style-rtl.css 7.05 kB 0 B
build/edit-post/style.css 7.04 kB 0 B
build/edit-site/index.js 27.5 kB 0 B
build/edit-site/style-rtl.css 4.51 kB 0 B
build/edit-site/style.css 4.5 kB 0 B
build/edit-widgets/index.js 15.8 kB 0 B
build/edit-widgets/style-rtl.css 2.98 kB 0 B
build/edit-widgets/style.css 2.98 kB 0 B
build/editor/index.js 42.7 kB 0 B
build/editor/style-rtl.css 3.96 kB 0 B
build/editor/style.css 3.96 kB 0 B
build/element/index.js 4.62 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.76 kB 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/hooks/index.js 2.28 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 4.02 kB 0 B
build/is-shallow-equal/index.js 699 B 0 B
build/keyboard-shortcuts/index.js 2.53 kB 0 B
build/keycodes/index.js 1.96 kB 0 B
build/list-reusable-blocks/index.js 3.19 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/media-utils/index.js 5.39 kB 0 B
build/notices/index.js 1.85 kB 0 B
build/nux/index.js 3.42 kB 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/plugins/index.js 2.95 kB 0 B
build/primitives/index.js 1.42 kB 0 B
build/priority-queue/index.js 791 B 0 B
build/react-i18n/index.js 1.46 kB 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/reusable-blocks/index.js 3.79 kB 0 B
build/reusable-blocks/style-rtl.css 225 B 0 B
build/reusable-blocks/style.css 225 B 0 B
build/rich-text/index.js 13.5 kB 0 B
build/server-side-render/index.js 2.6 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 3.02 kB 0 B
build/viewport/index.js 1.86 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@@ -272,7 +278,7 @@ function register_block_core_navigation_link() {
if ( $post_types ) {
foreach ( $post_types as $post_type ) {
$variation = build_variation_for_navigation_link( $post_type, 'post-type' );
if ( 'post' === $variation['name'] || 'page' === $variation['name'] ) {
if ( 'post' === $variation['name'] || 'page' === $variation['name'] || 'format' === $variation['name'] ) {

This comment has been minimized.

@talldan

talldan Mar 31, 2021
Author Contributor

I wasn't sure what the distinction is between $built_ins and $variations?

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

This is to force built-ins to show up before variations in the inserter. Feel free to refactor a bit if this is confusing.

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

Screen Shot 2021-03-31 at 10 51 45 AM

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

We did a similar sort in the customizer, but I opted to do a single pass on this, thus the two arrays.

This comment has been minimized.

@talldan

talldan Apr 1, 2021
Author Contributor

Ah, I thought it might be related to the order. I'll add a comment to the code to clarify the purpose 👍

{
name: 'format',
icon: formatIcon,
title: __( 'Post Format Link' ),
description: __( 'A link to a post format.' ),
attributes: { type: 'format' },
},
Comment on lines +53 to +59

This comment has been minimized.

@talldan

talldan Mar 31, 2021
Author Contributor

I can't seem to make this work without the fallback 🤔

This comment has been minimized.

@talldan

talldan Mar 31, 2021
Author Contributor

Ah, I see what's happening. First, I need to be on trunk for core. Now after that I have two Tag Link variations. 😕

Wait, so it looks like Post Formats have the same item_link and item_link_description as tags 🤯

Someone copied and pasted it years ago and nobody ever noticed?

This comment has been minimized.

@talldan

talldan Mar 31, 2021
Author Contributor

Hmm, ok, so I think there are some defaults in core for tags or categories:
https://github.com/WordPress/wordpress-develop/blob/0df28171ed9c3c31ebc93add82b64df8f690f87c/src/wp-includes/taxonomy.php#L597-L629

Seems unusual.

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

I can't seem to make this work without the fallback

Right any WP instances running 5.7 and below will be using the fallback.

We'll want to update hooks.js or similar to only add this value when post-formats are supported by the theme:

// Fallback handling may be deleted after supported WP ranges understand the `variations`
// property when passed to register_block_type_from_metadata in index.php
if ( ! settings.variations ) {
return {
...settings,
variations: fallbackVariations,
};
}

Shows up in TT1 / WP 5.7 No Search Results
Screen Shot 2021-03-31 at 8 54 01 AM Screen Shot 2021-03-31 at 8 53 41 AM
@talldan talldan requested review from gwwar and draganescu Mar 31, 2021
@gwwar
gwwar approved these changes Mar 31, 2021
Copy link
Contributor

@gwwar gwwar left a comment

Thanks for taking this one @talldan!

I'm giving tentative approval. One thing that needs to be updated before merge is making sure we don't show the format variations when using the variations fallback. (Eg folks using this on WP <=5.7 with a theme that does not support post formats).

Feel free to land this after that behavior is fixed.

<5.7 Fallback, we see the post format variation when we shouldn't 5.7+ behavior is good
Screen Shot 2021-03-31 at 8 54 01 AM TT1 correct

Some behavior screenshots for future 👀 :

2014 2014 + post format results
Screen Shot 2021-03-31 at 10 01 09 AM Screen Shot 2021-03-31 at 10 20 49 AM
'name' => 'format',
// The item_link and item_link_description for post formats is the
// same as for tags, so need to be overriden.
'title' => __( 'Post Format Link' ),

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

We can also update the registration here to add the post labels. I didn't realize we wanted to show this one, so I missed it in the last PR.

https://github.com/WordPress/wordpress-develop/blob/f7d5b2bca6083a22eb4ebadb4b68a0e683bc49c4/src/wp-includes/taxonomy.php#L164-L167

And for folks 👀 changes here, the reason why we added new post labels was because if we combine strings from two translated items, it will generate poor translations.

Example from swissspidy:

In German the translation for A link to a %s. changes depending on the post type.
A link to a post -> Ein Link zu einem Beitrag
A link to a page -> Ein Link zu einer Seite
sprintf( __( 'A link to a %s.' ), $entity->labels->singular_name ) doesn't allow for that.

WP 5.8 is planned for July so I think we can safely make it. (Variation changes aren't present in WP 5.7 and below)

It's okay if we miss the date and need a fallback override, but I'd maybe leave a comment on when it can be removed.

{
name: 'format',
icon: formatIcon,
title: __( 'Post Format Link' ),
description: __( 'A link to a post format.' ),
attributes: { type: 'format' },
},

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

I can't seem to make this work without the fallback

Right any WP instances running 5.7 and below will be using the fallback.

We'll want to update hooks.js or similar to only add this value when post-formats are supported by the theme:

// Fallback handling may be deleted after supported WP ranges understand the `variations`
// property when passed to register_block_type_from_metadata in index.php
if ( ! settings.variations ) {
return {
...settings,
variations: fallbackVariations,
};
}

Shows up in TT1 / WP 5.7 No Search Results
Screen Shot 2021-03-31 at 8 54 01 AM Screen Shot 2021-03-31 at 8 53 41 AM
'title' => __( 'Post Format Link' ),
'description' => __( 'A link to a post format' ),
'attributes' => array(
'type' => 'format',

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

I don't have strong feelings on this one, but since post_format is a less used feature, I think it'd be okay to prefer the slug name of post_format for storing the type value.

This field isn't exposed to the user unless they're editing the code view directly.

For context, I had to keep the tag/post_tag exception in the past due to the value being saved in earlier navigation link versions.

@@ -117,6 +117,8 @@ function getSuggestionsQuery( type, kind ) {
return { type: 'term', subtype: 'category' };
case 'tag':
return { type: 'term', subtype: 'post_tag' };
case 'format':
return { type: 'post-format' };

This comment has been minimized.

@gwwar

gwwar Mar 31, 2021
Contributor

For folks wondering about the kebab case:

if ( ! disablePostFormats && ( ! type || type === 'post-format' ) ) {

FYI on behavior, it also looks like we removed the labels in search results if all results are the same:
#24839

So this is expected behavior:

Custom Link Search No labels with all post formats
custom link search mixed types post format same types
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Navigation editor
  
PRs pending review
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants