正如您所注意到的,插件使用类的一个实例TablePress_Frontend_Controller
渲染短代码。
此实例是由仅在前端请求上创建的,这就是shortcode在后端不起作用的原因。
功能tablepress_print_table
函数使用TablePress_Frontend_Controller::shortcode_table
方法来呈现表,这就是为什么该函数也不起作用的原因。
因此,您需要的是创建该类的实例并调用shortcode_table
方法然而,要做到这一点,您需要加载所需的文件和设置类依赖项,但幸运的是插件主类\'TablePress\'
有一个静态方法来完成所有的艰苦工作:load_controller
.
您可以使用它编写自定义函数并将其放入插件或主题中functions.php
function tablepress_backend_table( $id = \'\' ) {
if ( empty($id) ) return;
if ( class_exists(\'TablePress\') ) {
$c = TablePress::load_controller( \'frontend\' );
echo $c->shortcode_table( array(\'id\' => $id ) );
}
}
之后,您可以在需要的地方打印所需的表格,如下所示:
// print the table with ID = \'1\'
tablepress_backend_table( \'1\' );
但是,这将在不设置样式的情况下打印表格。事实上,该插件没有在后端添加css,因此如果您希望表显示样式,您需要自己将插件样式排队(css文件位于插件的“css”子文件夹中)。对于pourpose,请确保使用
wp_enqueue_style
连接到的函数
admin_enqueue_scripts
钩住并使用一些逻辑将样式仅排列在您需要的特定管理页面中。