xarxaprod-wp-theme/vendor/wptrt/wpthemereview/WPThemeReview/Sniffs/PluginTerritory/NoAddAdminPagesSniff.php

67 lines
1.5 KiB
PHP
Raw Normal View History

2024-01-09 16:13:20 +01:00
<?php
/**
* WPThemeReview Coding Standard.
*
* @package WPTRT\WPThemeReview
* @link https://github.com/WPTRT/WPThemeReview
* @license https://opensource.org/licenses/MIT MIT
*/
namespace WPThemeReview\Sniffs\PluginTerritory;
use WordPressCS\WordPress\AbstractFunctionRestrictionsSniff;
/**
* Forbids the use of add_..._page() functions within Themes with the exception of `add_theme_page()`.
*
* @link https://make.wordpress.org/themes/handbook/review/required/theme-check-plugin/#admin-menu
*
* @since 0.1.0
*/
class NoAddAdminPagesSniff extends AbstractFunctionRestrictionsSniff {
/**
* Groups of functions to restrict.
*
* Example: groups => [
* 'lambda' => [
* 'type' => 'error' | 'warning',
* 'message' => 'Use anonymous functions instead please!',
* 'functions' => [ 'file_get_contents', 'create_function' ],
* ]
* ]
*
* @return array
*/
public function getGroups() {
return [
'add_menu_pages' => [
'type' => 'error',
'message' => 'Themes should use add_theme_page() for adding admin pages. Found %s.',
'functions' => [
// Menu Pages.
'add_menu_page',
'add_object_page',
'add_utility_page',
// SubMenu Pages.
'add_submenu_page',
// WordPress Administration Menus.
'add_dashboard_page',
'add_posts_page',
'add_links_page',
'add_media_page',
'add_pages_page',
'add_comments_page',
'add_plugins_page',
'add_users_page',
'add_management_page',
'add_options_page',
],
],
];
}
}