CSSなしで管理メニューから不要なテキストを削除します
-
16-10-2019 - |
質問
デフォルトのworpdressメタボックスから、すべての容赦のないテキストを削除する方法を探しています。
できれば、コンテンツがCSSを介して隠されているだけでなく、実際にHTMLから削除されているため、ソースにも表示されないようにしたいと考えています。
私が削除に興味がある領域は次のとおりです。
- クリックすると、右上のヘルプボタンとdiv/html/テキストを関連付けます
- 今のメタボックスのダッシュボードでは、どのテーマが使用されているかに関連するテキストと、WordPressのバージョンと変更テーマボタンを削除したいと思います。
- 下部の「ページ属性」メタボックスでは、テキストがあります。「ヘルプが必要ですか?画面の右上にあるヘルプタブを使用してください。」このテキストを削除したいと思います
- 「抜粋メタボックス」の下には、削除したいテキストがあります
- WordPressをクリーンアップするために削除する方法も知っている他のテキスト。
解決
これが質問#1の答えです。残りをするのに今は十分ではありません。
1.)管理者ヘルプリンクボタンを削除します
残念ながら、WordPressは、管理者の右上のヘルプボタンに影響を与えるためのフックを提供しませんが、使用できます。 やや汚いハック あなたが達成しようとしていることを達成するために。
今あなたはそれを見ます:
(ソース: mikeschinkel.com)
今あなたはしません:
(ソース: mikeschinkel.com)
電話をかけることによって contextual_help
と admin_notices
フックは、それぞれヘルプリンクボタンが出力される直前と直後に呼び出されるフックです。出力バッファーをキャプチャして、違反のHTMLを使用して削除できます preg_replace()
. 。 ob_start()
/ob_get_clean()
PHPの関数のペアは、出力をバッファするために必要なものであり、そのバッファーの出力、Violaをキャプチャするために必要なものです。
class RemoveAdminHelpLinkButton {
static function on_load() {
add_filter('contextual_help',array(__CLASS__,'contextual_help'));
add_action('admin_notices',array(__CLASS__,'admin_notices'));
}
static function contextual_help($contextual_help) {
ob_start();
return $contextual_help;
}
static function admin_notices() {
echo preg_replace('#<div id="contextual-help-link-wrap".*>.*</div>#Us','',ob_get_clean());
}
}
RemoveAdminHelpLinkButton::on_load();
一般に、この手法を使用して、フックの前後にWordPressによって生成されたほぼすべてのHTML出力を変更または削除できますが、非常に脆弱な手法であることに注意してください。別のプラグインがあなたが期待していたものからHTML出力を変更した場合 preg_replace()
一致しない可能性があります。ともかく...
3.)ページ属性メタボックスからヘルプテキストを削除します
ページ属性のヘルプテキストを削除するには、メタボックスは正規表現を必要としません。 str_replace()
しましょう。 (使用する適切なフックを見つけることに注意してください。:
class RemovePageAttributesHelpText {
static function on_load() {
add_action('admin_notices',array(__CLASS__,'admin_notices'));
add_action('dbx_post_sidebar',array(__CLASS__,'dbx_post_sidebar'));
}
static function admin_notices() {
ob_start();
}
static function dbx_post_sidebar() {
$match_text = '<p>Need help? Use the Help tab in the upper right of your screen.</p>';
echo str_replace($match_text,'',ob_get_clean());
}
}
RemovePageAttributesHelpText::on_load();
また、コアからテキストを削除したいときに使用できる別のアプローチもあります。 'gettext'
針。次のコードは、ページからヘルプテキストを削除します。
class RemovePageAttributesHelpText {
static function on_load() {
add_filter('gettext',array(__CLASS__,'gettext'),10,4);
}
function gettext($translation, $text, $domain) {
if ($text=='Need help? Use the Help tab in the upper right of your screen.') {
$translation = '';
}
return $translation;
}
}
RemovePageAttributesHelpText::on_load();
このフックは、ページの負荷ごとに何百回も呼ばれるため、このフックを使用することに注意していることに注意してください。たとえば、テストしたばかりの場合に備えて、管理ダッシュボードをロードするためだけに577回。したがって、それを使用する場合は、計算上のことは何もしないようにしてください "高価な" RAW SQLクエリなどの実行など。
4.)からテキストを削除します 「Extcerpt Metabox」
Exterpt Metaboxからヘルプテキストを削除するには、テクニック#3のオプション#2を使用します (これはテクニック#3のコードを含めたので、これは#3でコードを置き換えます):
class RemoveUnwantedPageEditingText {
static function on_load() {
add_action('admin_notices',array(__CLASS__,'admin_notices'));
add_action('dbx_post_sidebar',array(__CLASS__,'dbx_post_sidebar'));
}
static function admin_notices() {
ob_start();
}
static function dbx_post_sidebar() {
$html = str_replace('<p>Need help? Use the Help tab in the upper right of your screen.</p>','',ob_get_clean());
echo str_replace('Excerpts are optional hand-crafted summaries of your content that can be used in your theme.' .
' <a href="http://codex.wordpress.org/Excerpt" target="_blank">Learn more about manual excerpts.</a>','',$html);
}
}
RemoveUnwantedPageEditingText::on_load();
他のヒント
ワードキャンプミッドアトランティックでのジェイクゴールドマンの優れた講演は、優れたガイドを提供します。 http://www.cmurrayconsulting.com/wordpress-tips/customizing-wordpress-admin/#more-939
スライドショーの下に表示される適切に収集されたテーマをダウンロードしてください。 (彼は、あなたが彼のコードを使用している場合、あなたのコードコメントで彼に起因すると尋ねます。)
彼は、すべてのウィジェットIDを次のように取得できると述べています。var_dump($ wp_meta_boxes ['dashboard']);
unset($ wp_meta_boxes ['dashboard'] ['normal'] ['core'] ['dashboard_right_now']);
次に、wp_add_dashboard_widget()を使用して独自のウィジェットを追加します。
wp-admin/include/dashboard.php for the function、wp_dashboard_right_now()を調べます。
functions.php
<?php
/*
Based on Jake Goldman's approach
*/
add_action('wp_dashboard_setup', 'custom_dashboard_widgets');
function custom_dashboard_widgets(){
global $wp_meta_boxes;
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
wp_add_dashboard_widget('my_dashboard_right_now', 'Right Now', 'right_now_no_theme');
}
function right_now_no_theme() {
global $wp_registered_sidebars;
$num_posts = wp_count_posts( 'post' );
$num_pages = wp_count_posts( 'page' );
$num_cats = wp_count_terms('category');
$num_tags = wp_count_terms('post_tag');
$num_comm = wp_count_comments( );
echo "\n\t".'<div class="table table_content">';
echo "\n\t".'<p class="sub">' . __('Content') . '</p>'."\n\t".'<table>';
echo "\n\t".'<tr class="first">';
// Posts
$num = number_format_i18n( $num_posts->publish );
$text = _n( 'Post', 'Posts', intval($num_posts->publish) );
if ( current_user_can( 'edit_posts' ) ) {
$num = "<a href='edit.php'>$num</a>";
$text = "<a href='edit.php'>$text</a>";
}
echo '<td class="first b b-posts">' . $num . '</td>';
echo '<td class="t posts">' . $text . '</td>';
echo '</tr><tr>';
/* TODO: Show status breakdown on hover
if ( $can_edit_pages && !empty($num_pages->publish) ) { // how many pages is not exposed in feeds. Don't show if !current_user_can
$post_type_texts[] = '<a href="edit-pages.php">'.sprintf( _n( '%s page', '%s pages', $num_pages->publish ), number_format_i18n( $num_pages->publish ) ).'</a>';
}
if ( $can_edit_posts && !empty($num_posts->draft) ) {
$post_type_texts[] = '<a href="edit.php?post_status=draft">'.sprintf( _n( '%s draft', '%s drafts', $num_posts->draft ), number_format_i18n( $num_posts->draft ) ).'</a>';
}
if ( $can_edit_posts && !empty($num_posts->future) ) {
$post_type_texts[] = '<a href="edit.php?post_status=future">'.sprintf( _n( '%s scheduled post', '%s scheduled posts', $num_posts->future ), number_format_i18n( $num_posts->future ) ).'</a>';
}
if ( current_user_can('publish_posts') && !empty($num_posts->pending) ) {
$pending_text = sprintf( _n( 'There is <a href="%1$s">%2$s post</a> pending your review.', 'There are <a href="%1$s">%2$s posts</a> pending your review.', $num_posts->pending ), 'edit.php?post_status=pending', number_format_i18n( $num_posts->pending ) );
} else {
$pending_text = '';
}
*/
// Pages
$num = number_format_i18n( $num_pages->publish );
$text = _n( 'Page', 'Pages', $num_pages->publish );
if ( current_user_can( 'edit_pages' ) ) {
$num = "<a href='edit.php?post_type=page'>$num</a>";
$text = "<a href='edit.php?post_type=page'>$text</a>";
}
echo '<td class="first b b_pages">' . $num . '</td>';
echo '<td class="t pages">' . $text . '</td>';
echo '</tr><tr>';
// Categories
$num = number_format_i18n( $num_cats );
$text = _n( 'Category', 'Categories', $num_cats );
if ( current_user_can( 'manage_categories' ) ) {
$num = "<a href='edit-tags.php?taxonomy=category'>$num</a>";
$text = "<a href='edit-tags.php?taxonomy=category'>$text</a>";
}
echo '<td class="first b b-cats">' . $num . '</td>';
echo '<td class="t cats">' . $text . '</td>';
echo '</tr><tr>';
// Tags
$num = number_format_i18n( $num_tags );
$text = _n( 'Tag', 'Tags', $num_tags );
if ( current_user_can( 'manage_categories' ) ) {
$num = "<a href='edit-tags.php'>$num</a>";
$text = "<a href='edit-tags.php'>$text</a>";
}
echo '<td class="first b b-tags">' . $num . '</td>';
echo '<td class="t tags">' . $text . '</td>';
echo "</tr>";
do_action('right_now_content_table_end');
echo "\n\t</table>\n\t</div>";
echo "\n\t".'<div class="table table_discussion">';
echo "\n\t".'<p class="sub">' . __('Discussion') . '</p>'."\n\t".'<table>';
echo "\n\t".'<tr class="first">';
// Total Comments
$num = '<span class="total-count">' . number_format_i18n($num_comm->total_comments) . '</span>';
$text = _n( 'Comment', 'Comments', $num_comm->total_comments );
if ( current_user_can( 'moderate_comments' ) ) {
$num = '<a href="edit-comments.php">' . $num . '</a>';
$text = '<a href="edit-comments.php">' . $text . '</a>';
}
echo '<td class="b b-comments">' . $num . '</td>';
echo '<td class="last t comments">' . $text . '</td>';
echo '</tr><tr>';
// Approved Comments
$num = '<span class="approved-count">' . number_format_i18n($num_comm->approved) . '</span>';
$text = _nx( 'Approved', 'Approved', $num_comm->approved, 'Right Now' );
if ( current_user_can( 'moderate_comments' ) ) {
$num = "<a href='edit-comments.php?comment_status=approved'>$num</a>";
$text = "<a class='approved' href='edit-comments.php?comment_status=approved'>$text</a>";
}
echo '<td class="b b_approved">' . $num . '</td>';
echo '<td class="last t">' . $text . '</td>';
echo "</tr>\n\t<tr>";
// Pending Comments
$num = '<span class="pending-count">' . number_format_i18n($num_comm->moderated) . '</span>';
$text = _n( 'Pending', 'Pending', $num_comm->moderated );
if ( current_user_can( 'moderate_comments' ) ) {
$num = "<a href='edit-comments.php?comment_status=moderated'>$num</a>";
$text = "<a class='waiting' href='edit-comments.php?comment_status=moderated'>$text</a>";
}
echo '<td class="b b-waiting">' . $num . '</td>';
echo '<td class="last t">' . $text . '</td>';
echo "</tr>\n\t<tr>";
// Spam Comments
$num = number_format_i18n($num_comm->spam);
$text = _nx( 'Spam', 'Spam', $num_comm->spam, 'comment' );
if ( current_user_can( 'moderate_comments' ) ) {
$num = "<a href='edit-comments.php?comment_status=spam'><span class='spam-count'>$num</span></a>";
$text = "<a class='spam' href='edit-comments.php?comment_status=spam'>$text</a>";
}
echo '<td class="b b-spam">' . $num . '</td>';
echo '<td class="last t">' . $text . '</td>';
echo "</tr>";
do_action('right_now_table_end');
do_action('right_now_discussion_table_end');
echo "\n\t</table>\n\t</div>";
echo "\n\t".'<div class="versions">';
$ct = current_theme_info();
echo "\n\t<p>";
/*
if ( !empty($wp_registered_sidebars) ) {
$sidebars_widgets = wp_get_sidebars_widgets();
$num_widgets = 0;
foreach ( (array) $sidebars_widgets as $k => $v ) {
if ( 'wp_inactive_widgets' == $k )
continue;
if ( is_array($v) )
$num_widgets = $num_widgets + count($v);
}
$num = number_format_i18n( $num_widgets );
$switch_themes = $ct->title;
if ( current_user_can( 'switch_themes') ) {
echo '<a href="themes.php" class="button rbutton">' . __('Change Theme') . '</a>';
$switch_themes = '<a href="themes.php">' . $switch_themes . '</a>';
}
if ( current_user_can( 'edit_theme_options' ) ) {
printf(_n('Theme <span class="b">%1$s</span> with <span class="b"><a href="widgets.php">%2$s Widget</a></span>', 'Theme <span class="b">%1$s</span> with <span class="b"><a href="widgets.php">%2$s Widgets</a></span>', $num_widgets), $switch_themes, $num);
} else {
printf(_n('Theme <span class="b">%1$s</span> with <span class="b">%2$s Widget</span>', 'Theme <span class="b">%1$s</span> with <span class="b">%2$s Widgets</span>', $num_widgets), $switch_themes, $num);
}
} else {
if ( current_user_can( 'switch_themes' ) ) {
echo '<a href="themes.php" class="button rbutton">' . __('Change Theme') . '</a>';
printf( __('Theme <span class="b"><a href="themes.php">%1$s</a></span>'), $ct->title );
} else {
printf( __('Theme <span class="b">%1$s</span>'), $ct->title );
}
}
*/
echo '</p>';
update_right_now_message();
echo "\n\t".'<br class="clear" /></div>';
do_action( 'rightnow_end' );
do_action( 'activity_box_end' );
}
?>
Alternativと非常に簡単:プラグインを使用します 管理します, 、このプラグインには多くのオプションがあり、独自のオプションを追加できます。このプラグインは私自身であり、より良いコードで新しいプラグインをコーディングします。たぶん、csutomソリューションがソースを読み取るのに役立つでしょう。