How to deprecate a function used in a plugin?

In addition to the answer by @Welcher: There are some good “graveyard” examples in the core, where “functions come to die“. You could use them as guidelines, e.g. regarding the documentation. Here’s one such example for the permalink_link() under the wp-includes/deprecated.php /** * Print the permalink of the current post in the loop. * * … Read more

How to run a function every 5 minutes?

You can create new schedule times via cron_schedules: function my_cron_schedules($schedules){ if(!isset($schedules[“5min”])){ $schedules[“5min”] = array( ‘interval’ => 5*60, ‘display’ => __(‘Once every 5 minutes’)); } if(!isset($schedules[“30min”])){ $schedules[“30min”] = array( ‘interval’ => 30*60, ‘display’ => __(‘Once every 30 minutes’)); } return $schedules; } add_filter(‘cron_schedules’,’my_cron_schedules’); Now you can schedule your function: wp_schedule_event(time(), ‘5min’, ‘my_schedule_hook’, $args); To only schedule … Read more

plugins_url vs plugin_dir_url

Checkout – wp-includes/plugin.php#L585 plugin_dir_url() function internally uses plugins_url() to get the link to plugin directory. plugin_dir_url() This will return url of the plugin directory with a trailing slash at the end. So this can be easily used to link to the plugin directory. e.g – http://www.example.com/wp-content/plugins/foo/ plugins_url If no arguments are passed this will deliver … Read more

How to add a data attribute to a WordPress menu item

Specifically editing the code you provided in the original question: add_filter( ‘nav_menu_link_attributes’, ‘wpse121123_contact_menu_atts’, 10, 3 ); function wpse121123_contact_menu_atts( $atts, $item, $args ) { // The ID of the target menu item $menu_target = 123; // inspect $item if ($item->ID == $menu_target) { $atts[‘data-toggle’] = ‘modal’; } return $atts; }

How do I remove UL on wp_nav_menu?

The function wp_nav_menu takes an argument of fallback_cb which is the name of the function to run if the menu doesn’t exist. so change you code to something like this: function wp_nav_menu_no_ul() { $options = array( ‘echo’ => false, ‘container’ => false, ‘theme_location’ => ‘primary’, ‘fallback_cb’=> ‘fall_back_menu’ ); $menu = wp_nav_menu($options); echo preg_replace(array( ‘#^<ul[^>]*>#’, ‘#</ul>$#’ … Read more