WordPress.org

Make WordPress Core

Opened 5 years ago

Last modified 2 weeks ago

#19272 assigned enhancement

Add Filter to Nav Menu Support Themes Text

Reported by: wpsmith Owned by:
Milestone: Future Release Priority: normal
Severity: trivial Version:
Component: Menus Keywords: good-first-bug has-patch needs-docs dev-feedback
Focuses: Cc:

Description

Frameworks could use a filter here to customize the message: _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ). For example, it may be the child theme that doesn't support the menus. Also, if none are supported (say via add_theme_support), then when it's zero, it says: "Your theme supports 0 menus. Select which menu appears in each location." (which doesn't make much sense). So adding a filter can enable theme developers to further customize.

An example use case:
add_filter( 'nav_menu_theme_support_text' , 'wps_nav_menu_theme_support_text' );
function wps_nav_menu_theme_support_text ( $num_locations ) {

if ( $num_locations == 0 )

$text = 'Your child theme does not support custom menus.';

else

$text = _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations );

return $text;

}

Attachments (3)

nav_menu_theme_support_text.patch (939 bytes) - added by wpsmith 5 years ago.
refreshed-nav_menu_theme_support_text.diff (996 bytes) - added by horike 22 months ago.
ticket#19272.patch (1.1 KB) - added by bhargavbhandari90 18 months ago.
Check with this. As we applying filter to a string so add

Download all attachments as: .zip

Change History (13)

#1 @chriscct7
22 months ago

  • Keywords good-first-bug good-first-patch needs-refresh added; has-patch removed

Needs to be refreshed because of #24945

#2 @horike
22 months ago

  • Keywords has-patch added; needs-refresh removed

#3 @Yahire Furniture
21 months ago

  • Keywords needs-testing added

@bhargavbhandari90
18 months ago

Check with this. As we applying filter to a string so add

#4 in reply to: ↑ description @bhargavbhandari90
18 months ago

Replying to wpsmith:

Frameworks could use a filter here to customize the message: _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ). For example, it may be the child theme that doesn't support the menus. Also, if none are supported (say via add_theme_support), then when it's zero, it says: "Your theme supports 0 menus. Select which menu appears in each location." (which doesn't make much sense). So adding a filter can enable theme developers to further customize.

An example use case:
add_filter( 'nav_menu_theme_support_text' , 'wps_nav_menu_theme_support_text' );
function wps_nav_menu_theme_support_text ( $num_locations ) {

if ( $num_locations == 0 )

$text = 'Your child theme does not support custom menus.';

else

$text = _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations );

return $text;

}

As we are applying filters to string, so add filter will contain two arguments so $num_locations should be 2nd argument..

#5 @obenland
15 months ago

  • Owner set to bhargavbhandari90
  • Status changed from new to assigned

#6 @wonderboymusic
11 months ago

  • Keywords needs-docs added; needs-testing removed
  • Owner changed from bhargavbhandari90 to DrewAPicture

#7 @wonderboymusic
11 months ago

  • Milestone changed from Awaiting Review to 4.4

#8 @DrewAPicture
11 months ago

  • Keywords dev-feedback added; good-first-patch removed

As of [31951] we're using the decoupled strings from the Customizer here, which actually means we're using one of two different strings. @SergeyBiryukov: What would be your best suggestion if we wanted to make this text filterable? My first thought was to package them into an array and make that filterable, but I'm not sure I like that.

Currently:

<?php
if ( 1 == $num_locations ) {
        echo '<p>' . __( 'Your theme supports one menu. Select which menu you would like to use.' ) . '</p>';
} else {
        echo '<p>' .  sprintf( _n( 'Your theme supports %s menu. Select which menu appears in each location.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n( $num_locations ) ) . '</p>';
}
Last edited 11 months ago by DrewAPicture (previous) (diff)

#9 @DrewAPicture
11 months ago

  • Milestone changed from 4.4 to Future Release

Moving off the milestone until we can figure out a plan here.

#10 @DrewAPicture
2 weeks ago

  • Owner DrewAPicture deleted
Note: See TracTickets for help on using tickets.