我也遇到过类似的情况,我的基础是<;/wp-admin/includes/class-wp-posts-list-table.php
>:499人(function single_row {
...case \'title\'
)
复制$actions
创建块和相关变量(如下所示)manage_{post_type}_posts_custom_column
措施:
$post = get_post( $post_id );
setup_postdata( $post );
$title = _draft_or_post_title();
$post_type_object = get_post_type_object( $post->post_type );
$can_edit_post = current_user_can( $post_type_object->cap->edit_post, $post->ID );
$actions = array();
if ( $can_edit_post && \'trash\' != $post->post_status ) {
$actions[\'edit\'] = \'<a href="\' . get_edit_post_link( $post->ID, true ) . \'" title="\' . esc_attr( __( \'Edit this item\' ) ) . \'">\' . __( \'Edit\' ) . \'</a>\';
$actions[\'inline hide-if-no-js\'] = \'<a href="#" class="editinline" title="\' . esc_attr( __( \'Edit this item inline\' ) ) . \'">\' . __( \'Quick Edit\' ) . \'</a>\';
}
if ( current_user_can( $post_type_object->cap->delete_post, $post->ID ) ) {
if ( \'trash\' == $post->post_status )
$actions[\'untrash\'] = "<a title=\'" . esc_attr( __( \'Restore this item from the Trash\' ) ) . "\' href=\'" . wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . \'&action=untrash\', $post->ID ) ), \'untrash-\' . $post->post_type . \'_\' . $post->ID ) . "\'>" . __( \'Restore\' ) . "</a>";
elseif ( EMPTY_TRASH_DAYS )
$actions[\'trash\'] = "<a class=\'submitdelete\' title=\'" . esc_attr( __( \'Move this item to the Trash\' ) ) . "\' href=\'" . get_delete_post_link( $post->ID ) . "\'>" . __( \'Trash\' ) . "</a>";
if ( \'trash\' == $post->post_status || !EMPTY_TRASH_DAYS )
$actions[\'delete\'] = "<a class=\'submitdelete\' title=\'" . esc_attr( __( \'Delete this item permanently\' ) ) . "\' href=\'" . get_delete_post_link( $post->ID, \'\', true ) . "\'>" . __( \'Delete Permanently\' ) . "</a>";
}
if ( $post_type_object->public ) {
if ( in_array( $post->post_status, array( \'pending\', \'draft\', \'future\' ) ) ) {
if ( $can_edit_post )
$actions[\'view\'] = \'<a href="\' . esc_url( add_query_arg( \'preview\', \'true\', get_permalink( $post->ID ) ) ) . \'" title="\' . esc_attr( sprintf( __( \'Preview “%s”\' ), $title ) ) . \'" rel="permalink">\' . __( \'Preview\' ) . \'</a>\';
} elseif ( \'trash\' != $post->post_status ) {
$actions[\'view\'] = \'<a href="\' . get_permalink( $post->ID ) . \'" title="\' . esc_attr( sprintf( __( \'View “%s”\' ), $title ) ) . \'" rel="permalink">\' . __( \'View\' ) . \'</a>\';
}
}
修改此行:
$this->row_actions( $actions ); // From this
// This is calling a non static function statically and will throw an error.
// WP_List_Table::row_actions( $actions );
// Correct way, no error.
$WPTables = new WP_List_Table;
$WPTables->row_actions( $actions );
这不是最适合未来的代码,但在他们将其打包成可重用函数之前,这是一个很好的工作解决方案。
干杯