WordPress 是一个高度灵活的平台,用户可以自定义 UI、网站结构和代码。通过使用代码片段,可以添加主题中不可用的功能,甚至可以替代一些付费功能。本文将分享八个非常有用的代码片段,帮助你定制 WordPress 网站的各个方面。
如何在 WordPress 中添加代码片段
了解如何在 WordPress 中添加代码片段是很重要的。可以将代码添加到主题的 functions.php
文件中,或者使用专门的插件来管理代码片段,如 Code Snippets 插件。
使用 Code Snippets 插件
- 安装并激活 Code Snippets 插件。
- 在 WordPress 仪表板中,转到“Snippets”>“Add New”。
- 将代码粘贴到代码框中,并为片段命名。
- 选择适当的运行条件(如仅在前端运行)。
- 保存并激活代码片段。
这种方法比直接编辑 functions.php
文件更安全,因为它避免了主题更新时的覆盖风险。
1. 禁用 WordPress 管理栏
有时可能希望禁用 WordPress 的管理栏,特别是对特定用户角色。以下是相关代码片段:
禁用所有用户的管理栏
// Disable the WordPress admin bar for all logged-in users
add_filter('show_admin_bar', '__return_false');
禁用特定用户角色的管理栏
function my_disable_admin_bar($show_admin_bar) {
// Get the current user object
$current_user = wp_get_current_user();
// Disable admin bar for specific roles (replace 'editor' and 'subscriber' with desired roles)
if ( in_array( 'editor', $current_user->roles ) || in_array( 'subscriber', $current_user->roles ) ) {
return false;
}
return $show_admin_bar;
}
add_filter('show_admin_bar', 'my_disable_admin_bar');
提示:确保将代码类型保存为 PHP Snippet(在某些情况下)。
2. 允许贡献者上传图片
默认情况下,WordPress 不允许贡献者帐户上传图片。以下代码片段可以为贡献者帐户提供上传图片的权限:
function grant_upload_permission_to_contributors() {
$contributor_role = get_role('contributor');
if ( ! $contributor_role->has_cap('upload_files') ) {
$contributor_role->add_cap('upload_files');
}
}
add_action('admin_init', 'grant_upload_permission_to_contributors');
3. 禁用自动更新电子邮件
每当 WordPress 自动更新插件和主题时,可能会收到大量通知邮件。以下代码片段可以禁用这些邮件通知:
// Disable auto-update emails for WordPress core
add_filter('auto_core_update_send_email', '__return_false');
// Disable auto-update emails for plugins
add_filter('auto_plugin_update_send_email', '__return_false');
// Disable auto-update emails for themes
add_filter('auto_theme_update_send_email', '__return_false');
4. 更新“你好”管理栏消息
如果觉得默认的“Howdy”问候语不合适,可以用自定义问候语代替:
function wpcode_snippet_replace_howdy( $wp_admin_bar ) {
$new_howdy = 'This is Awesome,';
$my_account = $wp_admin_bar->get_node('my-account');
$wp_admin_bar->add_node(array(
'id' => 'my-account',
'title' => str_replace('Howdy,', $new_howdy, $my_account->title),
));
}
add_filter('admin_bar_menu', 'wpcode_snippet_replace_howdy', 25);
5. 禁用搜索功能
如果你的网站不需要搜索功能,可以使用以下代码片段完全禁用它:
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}
}
add_action('parse_query', 'fb_filter_query');
add_filter('get_search_form', '__return_null');
6. 禁用自动清空垃圾
WordPress 会自动删除垃圾箱中超过 30 天的内容。以下代码可以禁用此功能:
add_action('init', function() {
// Disable scheduled post deletion
remove_action('wp_scheduled_delete', 'wp_scheduled_delete');
});
7. 允许 SVG 上传
SVG 格式非常适合徽标文件,但默认情况下,WordPress 不允许上传 SVG。以下代码片段可以启用 SVG 上传:
function enable_svg_upload_for_admins( $mime_types ) {
// Allow SVG uploads only for administrators
if ( current_user_can('administrator') ) {
$mime_types['svg'] = 'image/svg+xml';
$mime_types['svgz'] = 'image/svg+xml';
}
return $mime_types;
}
add_filter('upload_mimes', 'enable_svg_upload_for_admins');
8. 禁用自动更新
自动更新有时会导致兼容性问题。以下代码片段可以禁用 WordPress 核心、插件和主题的自动更新:
// Disable auto-updates for WordPress core, plugins, and themes
function disable_all_auto_updates() {
add_filter('auto_update_core', '__return_false');
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
}
add_action('admin_init', 'disable_all_auto_updates');
结论
使用代码片段可以帮助 WordPress 用户根据自己的需求精确定制网站,而无需深入的编码知识。本文提供的八个代码片段涵盖了从功能增强到用户体验优化的各个方面。通过精心整合这些代码片段,可以提升网站的整体性能和可用性。
暂无评论内容