19 个代码片段让 WordPress 更易于管理
- 发表于
- 日志
转载的这19个代码片段能让你的WordPress站点更易于管理和高效。
1. 根据用户名来限制管理菜单项目的访问
如果你希望你的管理菜单的某些项对某些用户可见,那么这个代码就会帮到你。只需替换 functions.php 中的 clients-username 为如下代码即可:
function remove_menus()
{
global $menu;
global $current_user;
get_currentuserinfo();
if($current_user->user_login == 'clients-username')
{
$restricted = array(__('Posts'),
__('Media'),
__('Links'),
__('Pages'),
__('Comments'),
__('Appearance'),
__('Plugins'),
__('Users'),
__('Tools'),
__('Settings')
);
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}// end while
}// end if
}
add_action('admin_menu', 'remove_menus');
2. 从面板中删除默认的Widget部件
// Create the function to use in the action hook
function example_remove_dashboard_widgets() {
// Globalize the metaboxes array, this holds all the widgets for wp-admin
global $wp_meta_boxes;
// Remove the incomming links widget
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
// Remove right now
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
// Hoook into the 'wp_dashboard_setup' action to register our function
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
3. 在 WP Admin 中显示紧急信息
该代码将任何登录的用户显示定制的消息
/**
* Generic function to show a message to the user using WP's
* standard CSS classes to make use of the already-defined
* message colour scheme.
*
* @param $message The message you want to tell the user.
* @param $errormsg If true, the message is an error, so use
* the red message style. If false, the message is a status
* message, so use the yellow information message style.
*/
function showMessage($message, $errormsg = false)
{
if ($errormsg) {
echo '';
}
else {
echo '';
}
echo "$message
";
}
然后,为管理提醒函数增加钩子用来显示定制消息:
/**
* Just show our message (with possible checking if we only want
* to show message to certain users.
*/
function showAdminMessages()
{
// Shows as an error message. You could add a link to the right page if you wanted.
showMessage("You need to upgrade your database as soon as possible...", true);
// Only show to admins
if (user_can('manage_options') {
showMessage("Hello admins!");
}
}
/**
* Call showAdminMessages() when showing other admin
* messages. The message only gets shown in the admin
* area, but not on the frontend of your WordPress site.
*/
add_action('admin_notices', 'showAdminMessages');
4. 隐藏 WordPress 更新提醒
add_action('admin_menu','wphidenag');
function wphidenag() {
remove_action( 'admin_notices', 'update_nag', 3 );
}
5. 从文章、页面编辑器中移除 Meta-Boxes
function remove_extra_meta_boxes() {
remove_meta_box( 'postcustom' , 'post' , 'normal' ); // custom fields for posts
remove_meta_box( 'postcustom' , 'page' , 'normal' ); // custom fields for pages
remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); // post excerpts
remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); // page excerpts
remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); // recent comments for posts
remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); // recent comments for pages
remove_meta_box( 'tagsdiv-post_tag' , 'post' , 'side' ); // post tags
remove_meta_box( 'tagsdiv-post_tag' , 'page' , 'side' ); // page tags
remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' ); // post trackbacks
remove_meta_box( 'trackbacksdiv' , 'page' , 'normal' ); // page trackbacks
remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' ); // allow comments for posts
remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); // allow comments for pages
remove_meta_box('slugdiv','post','normal'); // post slug
remove_meta_box('slugdiv','page','normal'); // page slug
remove_meta_box('pageparentdiv','page','side'); // Page Parent
}
add_action( 'admin_menu' , 'remove_extra_meta_boxes' );
6. 创建个性化的面板
可轻松编辑自己的应用
// Create the function to output the contents of our Dashboard Widget
function example_dashboard_widget_function() {
// Display whatever it is you want to show
echo "Hello World, I'm a great Dashboard Widget";
}
// Create the function use in the action hook
function example_add_dashboard_widgets() {
wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');
}
// Hoook into the 'wp_dashboard_setup' action to register our other functions
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );
7. 禁用插件停用的功能
该代码将移除插件中的 Deactivate 链接,将下面代码保存到 functions.php 并保存。
add_filter( 'plugin_action_links', 'slt_lock_plugins', 10, 4 );
function slt_lock_plugins( $actions, $plugin_file, $plugin_data, $context ) {
// Remove edit link for all
if ( array_key_exists( 'edit', $actions ) )
unset( $actions['edit'] );
// Remove deactivate link for crucial plugins
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
'slt-custom-fields/slt-custom-fields.php',
'slt-file-select/slt-file-select.php',
'slt-simple-events/slt-simple-events.php',
'slt-widgets/slt-widgets.php'
)))
unset( $actions['deactivate'] );
return $actions;
}
8. 根据角色添加、删除和记录面板部件
function tidy_dashboard()
{
global $wp_meta_boxes, $current_user;
// remove incoming links info for authors or editors
if(in_array('author', $current_user->roles) || in_array('editor', $current_user->roles))
{
unset($wp_meta_boxes['dashboard']['normal ']['core']['dashboard_incoming_links']);
}
// remove the plugins info and news feeds for everyone
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
//add our function to the dashboard setup hook
add_action('wp_dashboard_setup', 'tidy_dashboard');
下面是用来取消默认面板部件的代码列表:
//Right Now - Comments, Posts, Pages at a glance
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
//Recent Comments
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
//Incoming Links
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
//Plugins - Popular, New and Recently updated WordPress Plugins
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
//Wordpress Development Blog Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
//Other WordPress News Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
//Quick Press Form
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
//Recent Drafts List
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
9. 更简单的登录 URL
将下面代码粘贴到 .htaccess 文件,放在 WordPress rewrite 规则之前
RewriteRule ^login$ http://yoursite.com/wp-login.php [NC,L]
10. Remove Pages Columns
下面代码允许你移除 ‘Pages’ 页中的你不再需要的列
function remove_pages_columns($defaults) {
unset($defaults['comments']);
return $defaults;
}
add_filter('manage_pages_columns', 'remove_pages_columns');
11. 禁止修改主题
该代码将面板中的 ‘Appearance’ 菜单项移除
add_action( 'admin_init', 'slt_lock_theme' );
function slt_lock_theme() {
global $submenu, $userdata;
get_currentuserinfo();
if ( $userdata->ID != 1 ) {
unset( $submenu['themes.php'][5] );
unset( $submenu['themes.php'][15] );
}
}
12. 修改面板底部的文本
function remove_footer_admin () {
echo "Your own text";
}
add_filter('admin_footer_text', 'remove_footer_admin');
13. Remove Author Metabox/Options & Move to Publish MetaBox
// MOVE THE AUTHOR METABOX INTO THE PUBLISH METABOX
add_action( 'admin_menu', 'remove_author_metabox' );
add_action( 'post_submitbox_misc_actions', 'move_author_to_publish_metabox' );
function remove_author_metabox() {
remove_meta_box( 'authordiv', 'post', 'normal' );
}
function move_author_to_publish_metabox() {
global $post_ID;
$post = get_post( $post_ID );
echo '
';
}
14. 修改登录的 Logo
新的 logo 尺寸是 326 x 82 ,把图片放到主题的 images 目录,然后修改下面代码的 ‘companylogo.png’ 并将代码粘贴到 functions.php
// login page logo
function custom_login_logo() {
echo '';
}
add_action('login_head', 'custom_login_logo');
15. 移除文章 Columns
该代码将移除 posts 页面的列
function remove_post_columns($defaults) {
unset($defaults['comments']);
return $defaults;
}
add_filter('manage_posts_columns', 'remove_post_columns');
Source
16. 禁用管理面板的顶级菜单
function remove_menus () {
global $menu;
$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
add_action('admin_menu', 'remove_menus');
17. 禁用管理面板的子菜单
function remove_submenus() {
global $submenu;
unset($submenu['index.php'][10]); // Removes 'Updates'.
unset($submenu['themes.php'][5]); // Removes 'Themes'.
unset($submenu['options-general.php'][15]); // Removes 'Writing'.
unset($submenu['options-general.php'][25]); // Removes 'Discussion'.
}
add_action('admin_menu', 'remove_submenus');
18. 增加自定义的面板 Logo
首先需要创建透明的图片,尺寸为 30x31px (.gif or .png) 然后保存到主题的 images 目录 (/wp-content/themes/theme-name/images) ,名字任意
//hook the administrative header output
add_action('admin_head', 'my_custom_logo');
function my_custom_logo() {
echo '
';
}
19. 为新的管理条添加和删除链接
function my_admin_bar_link() {
global $wp_admin_bar;
if ( !is_super_admin() || !is_admin_bar_showing() )
return;
$wp_admin_bar->add_menu( array(
'id' => 'diww',
'parent' => 'my-blogs',
'title' => __( 'Title of the link you want to add'),
'href' => admin_url( 'http://mysitesurl.com/wp-admin.php' )
) );
}
add_action('admin_bar_menu', 'my_admin_bar_link');
原文连接:19 个代码片段让 WordPress 更易于管理
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。
- 2024 BT磁力搜索引擎大全【最新优质】
- 怎么用图片搜索番号?以图搜图AI搜图
- this channel is blocked because it was used:Telegram群组/频道屏蔽解决方法
- 最新ESET NOD32 License Key/激活码/许可证密钥/用户名密码
- 谷歌识图,以图搜图
- No Access-Control-Allow-Origin 跨域错误解决
- 7款常用《网络抓包工具》更新
- 手机BT/种子下载,手机磁力链下载软件整理
- 一个绕过Google谷歌验证码(reCAPTCHA)的方法
- 404.php webshell
- 网络安全“Cyber security”和“Network security”的区别
- 9部有史以来最好的黑客电影
- 用uBlock Origin过滤广告,享受最好的广告拦截体验
- 解决Play商店“从服务器检索信息时出错DF-DFERH-01”
- Searx – 尊重隐私的开源搜索引擎