更改wp-admin/plugins.php上统计的插件数量

时间:2018-02-27 作者:Icarus

我已成功地使用从插件页面隐藏我的插件$wp_list_table 然而,顶部的分页仍然将插件列为“所有(3)”等。

我成功地改变了$wp_list_table 的数组_pagination_args = total_items.

但它仍然在页面顶部呈现插件-“全部(3)”。

有什么办法可以解决这个问题吗?

我找到了WP_Plugins_List_Table::prepare_items()具有全局$totals 变量,但我不确定我将如何改变这一点,

在这个函数中

$totals = array();
foreach ( $plugins as $type => $list )
    $totals[ $type ] = count( $list );
我所要找的就是在它呈现在页面上之前获得插件总数和-1。

2 个回复
SO网友:bueltge

这些值没有任何钩子来更改这一点。然而,通过Javascript很容易识别计数器。您可以使用短行Javascript来更改这一点。

钩子

你应该在这个页面钩子插件页面的钩子admin_footer-plugins.php, 喜欢add_action( \'admin_footer-plugins.php\', [ $this, \'change_view_values\' ], 11 );

函数包括javascript,例如must-use 计数,但您应该只更改插件计数器的选择器。小提示,php变量$this->mustuse_total 是我新伯爵的店铺。您应该用count来替换它,这是一个获取插件数量的函数。

/**
 * Change total count for must use values
 *
 * @since   01/09/2014
 * @return  void
 */
public function change_view_values() {

    $current_screen = get_current_screen();
    if ( null === $current_screen || \'plugins-network\' !== $current_screen->id ) {
        return;
    }

    $item = sprintf( _n( \'item\', \'items\', $this->mustuse_total ), number_format_i18n( $this->mustuse_total ) ); ?>

    <script type="text/javascript">
        jQuery( document ).ready( function($) {
            let text,
                value,
                mustuse,
                selector;
            // replace the brackets and set int value
            selector = \'.mustuse span\';
            text = $( selector ).text();
            value = text.replace( \'(\', \'\' );
            value = parseInt( value.replace( \')\', \'\' ) );
            // replace and add strings
            mustuse = value + <?php echo $this->mustuse_total; ?>;
            $( selector ).replaceWith( \'(\' + mustuse + \')\' );
            mustuse = mustuse + \' <?php echo esc_attr( $item ); ?>\';
            if ( document.URL.search( /plugin_status=mustuse/ ) !== - 1 ) {
                $( \'.tablenav .displaying-num\' ).replaceWith( mustuse );
            }
        } );
    </script>
    <?php
}
此代码当前正在使用中mu-plugin loader - https://github.com/bueltge/must-use-loader/blob/master/must_use_loader.php#L290

Sreenshot说得更多在我的上下文中,我更改了必用计数器,通过下图更容易理解。enter image description here

SO网友:Atik

这很简单。只需在第三行的count($list)中添加-1,如下所示:

$totals = array();
foreach ( $plugins as $type => $list )
    $totals[ $type ] = count( $list )-1;

结束

相关推荐

Need help with pagination

我在计算分页时遇到了一个问题。使用我在这里找到的信息Wordpress Pagination Not Working - Always Showing First Pages Content 线程,我已成功在页面上设置分页。代码如下所示:<?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; $args = array( \'posts_per_page\' => 10