在没有CSS的情况下从管理菜单中删除不必要的文本

时间:2010-09-30 作者:NetConstructor.com

我正在寻找一种方法来删除默认worpdress元数据库中所有不必要的文本。

最好我想确保内容不仅通过CSS隐藏,而且实际上从HTML中删除,这样它甚至不会显示在源代码中。

我想删除的领域包括:

单击右上角的“帮助”按钮并关联DIV/HTML/text时,我想删除与正在使用的主题和wordpress版本相关的文本以及“更改主题”按钮

  • 在底部的“页面属性”元框中,有文本“需要帮助?使用屏幕右上角的帮助选项卡”我希望删除此文本,在“摘录元数据库”下有一个文本,我希望删除任何其他文本,您可能也知道如何删除以清理wordpress
  • 3 个回复
    最合适的回答,由SO网友:MikeSchinkel 整理而成

    以下是问题#1的答案。现在没有足够的时间做剩下的事。

    1.)删除管理员帮助链接按钮不幸的是,WordPress没有提供一个钩子来影响管理员右上角的帮助按钮,但是你可以使用一个有点脏的黑客来实现你想要实现的目标。

    现在您可以看到:

    Help Link Button in WordPress Adminmikeschinkel.com)

    现在您不需要:

    Help Link Button Removed in WordPress Adminmikeschinkel.com)

    通过调用contextual_helpadmin_notices 钩子,即在输出帮助链接按钮之前和之后立即调用的钩子,您可以捕获输出缓冲区并使用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次。因此,如果您使用它,请确保不要做任何计算上的事情;“昂贵”

    4.)从中删除文本;摘录Metabox

    我们将使用技巧3中的选项2从摘录的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();
    

    SO网友:Marjorie Roswell

    Jake Goldman在大西洋中部WordCamp的精彩演讲提供了一个很好的指南:http://www.cmurrayconsulting.com/wordpress-tips/customizing-wordpress-admin/#more-939

    下载幻灯片下方评论良好的主题。(他问,如果您使用他的代码,请在代码注释中将其归属于他。)

    他提到,您可以按如下方式获得所有小部件ID:var\\u dump($wp\\u meta\\u box[\'dashboard]);

    您可以:取消设置($wp\\u meta\\u box[\'dashboard\'][\'normal\'][\'core\'][\'dashboard\\u right\\u now\');

    然后使用wp\\u add\\u dashboard\\u widget()添加您自己的小部件。

    查看wp admin/includes/dashboard。php函数,wp\\u dashboard\\u right\\u now()模型,用于添加内容(根据需要删除主题信息)

    功能。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\' );
    }
    
    
    ?>
    

    SO网友:bueltge

    Alternativ非常简单:使用插件Adminimize, 这个插件有很多选项,你可以添加自己的选项。这个插件是我自己的,我会用更好的代码编写一个更新的插件。也许这有助于csutom解决方案读取源代码。

    结束

    相关推荐