Wordpress WP列表表实现



我在执行WP List Table时收到以下错误消息

致命错误:调用未定义的函数convert_to_screen()…/wp-admin/包括/class-wp-list-table.php第88行

我已经解决了这个问题,包括以下行
require_once(ABSPATH . 'wp-admin/includes/template.php' );

在此之后,WP列表表在我的插件中工作良好。但是我得到下面的通知,而激活我的插件。

注意:convert_to_screen(), add_meta_box()调用不正确。可能直接包含wp-admin/includes/template.php以便使用add_meta_box()。这是非常错误的。钩子add_meta_box()调用添加到add_meta_boxes动作中。请参阅获取更多信息。(此消息在版本3.3.)在/var/www/wordpress_rnd/wordpress3.8.1/wp-includes/functions.php中第3049行

有人知道这个通知吗?我正在使用Wordpress版本3.8.1

下面的

是所要求的最小代码。

define('FRM_PLUGIN_DIR_PATH_INC', trailingslashit( plugin_dir_path( __FILE__ ) ) .'../inc');
if( ! class_exists( 'WP_List_Table' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
}
// Commenting below line result in error.
require_once(ABSPATH . 'wp-admin/includes/template.php' );
class Any_Forms_Funtions extends WP_List_Table{

    public function listForm(){
        echo "<div class='wrap'><form>";
        $this->prepare_items();
        $this->display();
        echo "</form></div>";
    }
    function get_columns(){
        $columns = array(
            //'cb'        => '<input type="checkbox" />',
            'booktitle' => 'Title',
            'author'    => 'Author',
            'isbn'      => 'ISBN',
        );
        return $columns;
    }
    function column_default( $item, $column_name ) {
        switch( $column_name ) {
            case 'booktitle':
            case 'author':
            case 'isbn':
                return $item[ $column_name ];
            default:
                return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes
        }
    }
    function prepare_items() {
        $example_data = array(
            array('ID' => 1,'booktitle' => 'Quarter Share', 'author' => 'Rakesh','isbn' => '978-0982514542')
            ,array('ID' => 2,'booktitle' => 'Quarter Share', 'author' => 'Rakesh','isbn' => '978-0982514542')
        );
        $columns = $this->get_columns();
        $hidden = array();
        $sortable = $this->get_sortable_columns();
        $this->_column_headers = array($columns, $hidden, $sortable);
        $this->items = $example_data;
    }
}

我所做的唯一更改是删除listForm方法并添加__construct。工程没有PHP通知,不包括wp-admin/includes/template.php

add_action('admin_menu', function () 
{
    add_menu_page(
        'TE', 
        '<span style="color:#e57300;">Table Example</span>', 
        'edit_pages', 
        'table-example', 
            function() { 
                echo '<div class="wrap">';
                echo '<h2>Table Example</h2>';
                new Table_SO_22371861(); 
                echo '</div>';
            },
        'http://sstatic.net/stackexchange/img/favicon.ico',
        1  // create before Dashboard menu item
    );
});
if( !class_exists( 'WP_List_Table' ) )
    require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' );
class Table_SO_22371861 extends WP_List_Table{
    public function __construct()
    {
        parent::__construct( array(
            'singular' => 'table example',
            'plural'   => 'table examples',
            'ajax'     => true
        ) );
        $this->prepare_items();
        $this->display();
    }
    function get_columns(){
        $columns = array(
            //'cb'        => '<input type="checkbox" />',
            'booktitle' => 'Title',
            'author'    => 'Author',
            'isbn'      => 'ISBN',
        );
        return $columns;
    }
    function column_default( $item, $column_name ) {
        switch( $column_name ) {
            case 'booktitle':
            case 'author':
            case 'isbn':
                return $item[ $column_name ];
            default:
                return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes
        }
    }
    function prepare_items() {
        $example_data = array(
            array('ID' => 1,'booktitle' => 'Quarter Share', 'author' => 'Rakesh','isbn' => '978-0982514542')
            ,array('ID' => 2,'booktitle' => 'Quarter Share', 'author' => 'Rakesh','isbn' => '978-0982514542')
        );
        $columns = $this->get_columns();
        $hidden = array();
        $sortable = $this->get_sortable_columns();
        $this->_column_headers = array($columns, $hidden, $sortable);
        $this->items = $example_data;
    }
}

检查以下扩展示例:我想要分页到我的wordpress插件的选项页?

最新更新