Удаление ненужного текста из меню администратора без CSS

wordpress.stackexchange https://wordpress.stackexchange.com/questions/2384

  •  16-10-2019
  •  | 
  •  

Вопрос

Я ищу способ удалить весь беспристрастный текст из метабокс Worpdress по умолчанию.

Предпочтительно я хотел бы убедиться, что контент не только скрыт через CSS, но и фактически удален из HTML, чтобы он даже не отображался в источнике.

Области, которые меня заинтересованы в удалении, включают:

  1. Кнопка справки в правом верхнем углу и связывание Div/HTML/Tex
  2. На приборной панели в прямом времени Metabox я хочу удалить текст, связанный с тем, какая тема используется, и версию WordPress, а также кнопку «Изменение темы».
  3. На «атрибутах страницы» в нижней части внизу текст «Нужна помощь? Используйте вкладку справки в правом верхнем углу экрана». Я бы хотел, чтобы этот текст был удален
  4. Под «выдержкой метабокс» есть текст, который я хотел бы удалить
  5. Любой другой текст, который вы также можете знать, как удалить для очистки WordPress.
Это было полезно?

Решение

Вот ответ на вопрос № 1. Недостаточно времени прямо сейчас, чтобы сделать все остальное.

1.) Удаление кнопки справки администратора

К сожалению, WordPress не предоставляет крючок, чтобы позволить вам повлиять на кнопку справки в правом верхнем углу, но вы можете использовать Немного грязного взлома Чтобы достичь того, чего вы пытаетесь достичь.

Теперь вы это видите:

Help Link Button in WordPress Admin
(источник: mikeschinkel.com)

Теперь вы этого не сделаете:

Help Link Button Removed in WordPress Admin
(источник: mikeschinkel.com)

Позвонив contextual_help а также admin_notices крючки, те, которые называются непосредственно до и сразу после того, как кнопка справочной связи выводится, соответственно, вы можете захватить выходной буфер и удалить атакующий HTML с помощью preg_replace(). Анкет А ob_start()/ob_get_clean() Пара функций в PHP - это то, что вам нужно для буферизации вывода, а затем для захвата этого буферизованного выхода, vilta:

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();

В целом вы можете использовать эту технику для изменения или удаления практически любого HTML -вывода, сгенерированного WordPress, найдя крючки до и после, но имейте в виду, что это очень хрупкая техника; Если другой плагин изменил выход HTML с того, что вы ожидали preg_replace() может не соответствовать. Тем не мение...

3.) Удаление текста справки из атрибутов страницы MetaBox

Чтобы удалить текст справки для атрибутов страницы Metabox не требует регулярных выражений, простых 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();

Есть также еще один подход, который вы можете использовать, когда все, что вы хотите сделать, удалить текст из Core, и это использовать 'gettext' крюк. Следующий код удаляет текст справки из атрибутов страницы Metabox:

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 раз только для загрузки административной панели на случай, если я только что протестировал, например. Поэтому, если вы используете его, будьте уверены, что не делаете ничего, что вычислительно "дорогой" например, запуск необработанного SQL -запроса или аналогичный.

4.) Удаление текста из "Выдержка метабокс"

Мы будем использовать опцию № 2 от Technique #3, чтобы лишить справочный текст из MetaBox отрывка (Этот я включил код из техники № 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();

Другие советы

Отличный разговор Джейка Голдмана в WordCamp Mid-Atlantic предоставляет отличное руководство: http://www.cmurrayconsulting.com/wordpress-tips/customizing-wordpress-admin/#more-939

Загрузите хорошо подготовленную тему, которая появляется под слайд-шоу. (Он спрашивает, что если вы используете его код, вы приписываете его ему в ваших комментариях кода.)

Он упоминает, что вы можете получить все идентификаторы виджетов следующим образом: var_dump ($ wp_meta_boxes ['dashboard']);

Вы могли бы: unset ($ wp_meta_boxes ['dashboard'] ['normal'] ['core'] ['dashboard_right_right_now']);

Затем добавьте свой собственный виджет с помощью wp_add_dashboard_widget ().

Посмотрите в wp-admin/incluct/dashboard.php для функции, 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, чтобы прочитать источник.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top