Make WordPress Core

Opened 12 years ago

Last modified 21 months ago

#19272 assigned enhancement

Add Filter to Nav Menu Support Themes Text

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

Description (last modified by SergeyBiryukov)

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 12 years ago.
refreshed-nav_menu_theme_support_text.diff (996 bytes) - added by horike 9 years ago.
ticket#19272.patch (1.1 KB) - added by bhargavbhandari90 9 years ago.
Check with this. As we applying filter to a string so add

Download all attachments as: .zip

Change History (21)

#1 @chriscct7
9 years ago

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

Needs to be refreshed because of #24945

#2 @horike
9 years ago

  • Keywords has-patch added; needs-refresh removed

#3 @Yahire Furniture
9 years ago

  • Keywords needs-testing added

@bhargavbhandari90
9 years ago

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

#4 in reply to: ↑ description @bhargavbhandari90
9 years 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
9 years ago

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

#6 @wonderboymusic
9 years ago

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

#7 @wonderboymusic
9 years ago

  • Milestone changed from Awaiting Review to 4.4

#8 @DrewAPicture
8 years 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 8 years ago by DrewAPicture (previous) (diff)

#9 @DrewAPicture
8 years ago

  • Milestone changed from 4.4 to Future Release

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

#10 @DrewAPicture
8 years ago

  • Owner DrewAPicture deleted

This ticket was mentioned in Slack in #docs by morganestes. View the logs.


7 years ago

#12 @DrewAPicture
7 years ago

  • Owner set to bhargavbhandari90

Assigning ownership to mark the good-first-bug as "claimed".

#13 @audrasjb
5 years ago

  • Keywords needs-refresh added

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


22 months ago

#15 @SergeyBiryukov
22 months ago

  • Description modified (diff)

This ticket was mentioned in PR #2929 on WordPress/wordpress-develop by whaze.


21 months ago
#16

  • Keywords needs-refresh removed

This ticket was mentioned in PR #2931 on WordPress/wordpress-develop by maxpertici.


21 months ago
#18

Add a filter nav_menu_theme_support_text

Trac ticket: https://core.trac.wordpress.org/ticket/19272

Note: See TracTickets for help on using tickets.