3

私はそのコードを書きます

<?php
/**
* @package ppa
* @version 0.1
*/
/*
Plugin Name: PPAPlugin
Description: PPAPlugin desct
Author: Sekhmet
Version: 0.1
*/

    register_activation_hook( plugin_basename( __FILE__ ), array( 'PPA', 'activate' ) );
    register_deactivation_hook( plugin_basename( __FILE__ ), array( 'PPA', 'deactivate' ) );
    register_uninstall_hook( plugin_basename( __FILE__ ), array( 'PPA', 'uninstall' ) );


    class PPA
    {
        const NAME = "PPA";

        public static function activate() {
        self :: ppa_add_dashboard();
        }

        public static function deactivate() {
        }

        public static function uinstall() {
        }

        function ppa_add_dashboard() {
            wp_add_dashboard_widget( 'ppa_widget', self :: NAME , array($this, 'ppa_dashboard_widget') );
        }

        function ppa_dashboard_widget() {
        }
    }


?>

しかし、ACPで有効にしようとすると、そのメッセージが表示されます。

致命的なエラー:35行目の/home/muffinki/domains/muffinki.org/public_html/wp-content/plugins/ppa/ppa.phpにある未定義の関数wp_add_dashboard_widget()を呼び出します

Wordpressバージョン3.5.1(最新)。

4

1 に答える 1

6

ppa_add_dashboard()関数をアクションにフックしてwp_dashboard_setup、正しいタイミングで呼び出されるようにします。

public static function activate() {
    add_action( 'wp_dashboard_setup', array( __CLASS__, 'ppa_add_dashboard' ) );
}

参照:

http://codex.wordpress.org/Function_Reference/wp_add_dashboard_widget

http://codex.wordpress.org/Dashboard_Widgets_API

于 2013-01-27T10:48:18.173 に答える