我想在“个人资料”(wp-admin/profile.php
)管理页面中隐藏/删除“个人选项” 。
我知道存在解决方案,但是我使用jQuery来隐藏此部分。此方法有效,但是当用户在其浏览器中禁用JavaScript时,它将再次显示。因此,这不是删除“个人选项”的正确方法。
有没有办法从页面的HTML源中删除“个人选项”部分?这意味着没有jQuery或CSS hack或核心文件修改。
我想在“个人资料”(wp-admin/profile.php
)管理页面中隐藏/删除“个人选项” 。
我知道存在解决方案,但是我使用jQuery来隐藏此部分。此方法有效,但是当用户在其浏览器中禁用JavaScript时,它将再次显示。因此,这不是删除“个人选项”的正确方法。
有没有办法从页面的HTML源中删除“个人选项”部分?这意味着没有jQuery或CSS hack或核心文件修改。
Answers:
这应该可以解决问题
// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
if ( ! function_exists( 'cor_remove_personal_options' ) ) {
/**
* Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
*/
function cor_remove_personal_options( $subject ) {
$subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
return $subject;
}
function cor_profile_subject_start() {
ob_start( 'cor_remove_personal_options' );
}
function cor_profile_subject_end() {
ob_end_flush();
}
}
add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );
另外,不要忘记将您之前的问题标记为已解决:)
admin_head-profile.php
和admin_footer-profile.php
核心。想法?非常感谢。
admin_head-profile.php
和admin_footer-profile.php
:codex.wordpress.org/Plugin_API/...
只是想弄清楚这一点,并遇到了这个答案。上面的Cor van编写的代码不再起作用,但是对add_action稍作更改,就可以了。
您需要做的就是将以下两行更改为:
add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );
至
add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );
因此,最终代码如下所示:
if ( ! function_exists( 'cor_remove_personal_options' ) ) {
/**
* Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
*/
function cor_remove_personal_options( $subject ) {
$subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
return $subject;
}
function cor_profile_subject_start() {
ob_start( 'cor_remove_personal_options' );
}
function cor_profile_subject_end() {
ob_end_flush();
}
}
add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );
接受的答案不适用于4.8
以下是适用于任何版本的最新简化代码:
// removes admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
//Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
add_action( 'admin_head', function () {
ob_start( function( $subject ) {
$subject = preg_replace( '#<h[0-9]>'.__("Personal Options").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
return $subject;
});
});
add_action( 'admin_footer', function(){
ob_end_flush();
});
感谢@Per的评论,我使它适用于4.5.2
// removes admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
if ( ! function_exists( 'cor_remove_personal_options' ) ) {
/**
* Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
*/
function cor_remove_personal_options( $subject ) {
$subject = preg_replace( '#<h2>Personal Options</h2>.+?/table>#s', '', $subject, 1 );
return $subject;
}
function cor_profile_subject_start() {
ob_start( 'cor_remove_personal_options' );
}
function cor_profile_subject_end() {
ob_end_flush();
}
}
add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );`
这是我的CSS解决方案,已在Wordpress 4.9.8中进行了测试
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
add_action( 'admin_head', function(){
ob_start(); ?>
<style>
#your-profile > h2,
.user-rich-editing-wrap,
.user-syntax-highlighting-wrap,
.user-comment-shortcuts-wrap,
.user-admin-bar-front-wrap {
display: none;
}
</style>
<?php ob_end_flush();
});
我只是想澄清一下,由于硬编码的Personal Options
字符串,该代码不适用于WordPress的本地化版本。我在这里没有想到任何简单的解决方案,但是欢迎提出建议。
我将其添加为注释,但是我没有足够的声誉来添加注释。
我也借此机会重新粘贴针对WordPress 3.9版更新的整个代码。
这里是:
// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
if ( ! function_exists( 'cor_remove_personal_options' ) ) {
/**
* Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
*/
function cor_remove_personal_options( $subject ) {
$subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
return $subject;
}
function cor_profile_subject_start() {
ob_start( 'cor_remove_personal_options' );
}
function cor_profile_subject_end() {
ob_end_flush();
}
}
add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
同样,如果您预先知道WP安装的语言,请将Personal Options
字符串更改为语言的本地化版本,例如意大利语,您将用替换它Impostazioni personali
。
我在以下位置找到了此解决方案:https ://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg-XPCV9sY1yrw .2
function hide_personal_options(){
echo "\n" . '<script type="text/javascript">jQuery(document).ready(function($) {
$(\'form#your-profile > h3:first\').hide(); $(\'form#your-profile >
table:first\').hide(); $(\'form#your-profile\').show(); });</script>' . "\n";
}
add_action('admin_head','hide_personal_options');
如果您想更具体或删除更多内容,请在这里查看:https : //isabelcastillo.com/hide-personal-options-wordpress-admin-profile
您可以将这些行添加到函数中。