首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress插件

Wordpress插件
EN

Stack Overflow用户
提问于 2010-01-04 19:05:14
回答 2查看 1.4K关注 0票数 0

我试图在wordpress的插件中使用一个小部件,我在小部件框中看到了这个错误:

代码语言:javascript
复制
Warning: extract() [function.extract]: First argument should be an array in /nfs/c03/h04/mnt/57957/domains/rab.qbessi.com/html/wp-content/plugins/register-plus/dash_widget.php on line 24

下面是第24行的代码:

代码语言:javascript
复制
    // Output the widget contents
    function widget( $args ) {
        extract( $args, EXTR_SKIP );

下面是dash_widget.php代码

代码语言:javascript
复制
<?php
if( !class_exists('RegisterPlusWidget') ){
    class RegisterPlusWidget{
        function RegisterPlusWidget() { //contructor
            // Add the widget to the dashboard
            add_action( 'wp_dashboard_setup', array($this, 'register_widget') );
            add_filter( 'wp_dashboard_widgets', array($this, 'add_widget') );       
        }
        function register_widget() {
            wp_register_sidebar_widget( 'regplus_invite_tracking', __( 'Invitation Code Tracking', 'regplus' ), array($this, 'widget'), array( 'settings' => 'options-general.php?page=register-plus' ) );
        }
        // Modifies the array of dashboard widgets and adds this plugin's
        function add_widget( $widgets ) {
            global $wp_registered_widgets;

            if ( !isset($wp_registered_widgets['regplus_invite_tracking']) ) return $widgets;

            array_splice( $widgets, 2, 0, 'regplus_invite_tracking' );

            return $widgets;
        }
        // Output the widget contents
        function widget( $args ) {
            extract( $args, EXTR_SKIP );

            echo $before_widget;

            echo $before_title;
            echo $widget_name;
            echo $after_title;

            global $wpdb;
            $regplus = get_option( 'register_plus' );
            $codes = $regplus['codepass'];
            $usercodes = array();
            foreach($codes as $code){
                $users = $wpdb->get_results( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key='invite_code' AND meta_value='$code'" );
                echo '<h3>' . $code . ': <small style="font-weight:normal">' . count($users) . ' Users Registered.</small></h3>';
            }       
            echo $after_widget;
        }
    }
} # End Class RegisterPlusWidget

// Start this plugin once all other plugins are fully loaded
add_action( 'plugins_loaded', create_function( '', 'global $regplus_widget; $regplus_widget = new RegisterPlusWidget();' ) );
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-04 19:09:09

在没有参数的情况下调用widget()函数。为什么,如果不深入研究这个插件就很难说清楚。你应该问问插件的作者。您可以尝试添加

代码语言:javascript
复制
// Output the widget contents
function widget( $args ) {
    if (is_array($args))  // Add this
    extract( $args, EXTR_SKIP );

然后看看输出是否仍然有意义。这有效地抑制了导致警告的操作。如果它是一个糟糕的插件,在开发时关闭了警告,那么它可能已经起到了作用。

票数 1
EN

Stack Overflow用户

发布于 2019-11-06 20:30:50

谷歌推出了名为site kit的新插件,它将使分析工作变得更加容易。

https://wordifact.com/google-site-kit/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1998871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档