Unit testing in the WordPress backend (is_admin() is true)

According to this test, you use set_current_screen() to navigate to one of these in the setUp method. Alas, none of this is apparent if you look at the tremendously-helpful reference page for get_current_screen()… Example: <?php class AxisSetupTest extends WP_UnitTestCase { /** * @covers AxisWP::__construct */ function test_constructor() { // Assert // Admin $this->assertInternalType(‘integer’, has_action( ‘admin_enqueue_scripts’, … Read more

How to Add a Third Level Sub Menu to the WordPress Admin Menu

No, it is not possible to create third level menu in admin panel. If you look at the definition of add_submenu_page, you need to mention the parent slug name. For eg: add_menu_page ( ‘Test Menu’, ‘Test Menu’, ‘read’, ‘testmainmenu’, ”, ” ); add_submenu_page ( ‘testmainmenu’, ‘Test Menu’, ‘Child1’, ‘read’, ‘child1’, ”); The first parameter of … Read more

How do I improve this admin query snippet to avoid generating duplicate results on non-meta searches?

A GROUP BY statement can group your posts after the JOIN. For WordPress you can use the posts_groupby filter. add_filter( ‘posts_groupby’, ‘my_post_limits’ ); function my_post_limits($groupby) { global $pagenow, $wpdb; if ( is_admin() && $pagenow == ‘edit.php’ && $_GET[‘post_type’]==’listings’ && $_GET[‘s’] != ” ) { $groupby = “$wpdb->posts.ID”; } return $groupby; }

Disable /wp-admin/plugin-install.php

There is a constant you can define in wp-config.php to do this. It will also disable the theme edit, however. <?php // somewhere in wp-config.php define(‘DISALLOW_FILE_MODS’, true); That will remove the plugin and theme file editor (which are a terrible idea anyway) and remove the ability to install plugins and themes from the admin area.

How to filter users on admin users page by custom meta field?

UPDATE 2018-06-28 While the code below mostly works fine, here is a rewrite of the code for WP >=4.6.0 (using PHP 7): function add_course_section_filter( $which ) { // create sprintf templates for <select> and <option>s $st=”<select name=”course_section_%s” style=”float:none;”><option value=””>%s</option>%s</select>”; $ot=”<option value=”%s” %s>Section %s</option>”; // determine which filter button was clicked, if any and set section … Read more

Link to specific Customizer section

As you’ve already discovered, links to the customizer always start with /wp-admin/customize.php. Append ?autofocus[section] =section_name to checkout your section within the customizer. Both parameters (section and section_name) are registered within your customize_register hook: $wp_customize->add_section If you can’t find the hook, check the HTML markup of the customizer for further information. Both parameters are included within … Read more

How can I remove the “Add New” button in my custom post type?

Please refer below : function disable_new_posts() { // Hide sidebar link global $submenu; unset($submenu[‘edit.php?post_type=CUSTOM_POST_TYPE’][10]); // Hide link on listing page if (isset($_GET[‘post_type’]) && $_GET[‘post_type’] == ‘CUSTOM_POST_TYPE’) { echo ‘<style type=”text/css”> #favorite-actions, .add-new-h2, .tablenav { display:none; } </style>’; } } add_action(‘admin_menu’, ‘disable_new_posts’);

Changing the ‘wp-admin’ URL to whatever I want

If you’re looking for a way to physically move the wp-admin folder to another location, that is indeed problematic. That’s why there is not an easy solution available. Not that it isn’t just easy, it is even the opposite. The directory name “wp-admin” is hardcoded deeply into wordpress. This is by design, so wordpress actively … Read more

How can I control the position in the admin menu of items added by plugins?

To change top level admin menu items order you’ll need two hooks, two filters, and one function. Put the following code in your current theme’s functions.php: function wpse_custom_menu_order( $menu_ord ) { if ( !$menu_ord ) return true; return array( ‘index.php’, // Dashboard ‘separator1’, // First separator ‘edit.php’, // Posts ‘upload.php’, // Media ‘link-manager.php’, // Links … Read more

do_shortcode() within Admin Page

Instead of calling do_shortcode() just call the function associated with the shortcode. Example There is a shortcode named [example] and a function registered as shortcode handler: function example_shortcode( $atts = array(), $content=”” ) { extract( shortcode_atts( array ( ‘before’ => ”, ‘after’ => ”, ), $atts ) ); return $before . $content . $after; } … Read more