替换CPT的admin edit.php内容

时间:2019-06-12 作者:Vinzz

我正在构建一个WP插件,我想为我的cpt替换管理列表页(edit.php?post\\u type=my\\u cpt)。CPT不应该有任何“添加新内容”按钮,因为新内容只会被导入。现有帖子仍应可编辑和删除。我可以通过如下定义我的CPT的功能来隐藏“添加新”按钮和链接:

\'show_in_menu\'     => \'my_cpt\',
\'capability_type\'  => \'post\',
    \'capabilities\' => array(
        \'create_posts\' => \'do_not_allow\',       
    ),  
    \'map_meta_cap\' => true
我还创建了一个与CPT同名的自定义菜单。(链接到admin.php?page=my\\u cpt\\u页面),默认的“所有帖子”链接将从菜单中删除。

//Main menu (this page will have a custom table for my CPT)
add_menu_page(
    __( \'My CPT\', \'cpt\' ),                  // Page Title
    \'My Test CPT\',                          // Menu Title
    \'edit_posts\',                           // capability
    \'my_cpt\',                               // menu slug
     array( $this->main_page, \'render\' ),    // action
    \'dashicons-email-alt\',                  // icon
    6                                       // position
); 
//remove menu created by wordpress
remove_submenu_page( \'my_cpt\', \'edit.php?post_type=my_cpt\' );
现在,当我转到单个项目的编辑页面(例如:post.php?post=666&;action=edit)并按下“移动到垃圾箱”链接时,Wordpress会将我重定向到位于编辑的隐藏页面。php?post\\U type=我的\\U cpt

有没有办法重定向编辑。php?将类型=my\\u cpt发布到我自己的自定义页面(admin.php?page=my\\u cpt\\u页面),而不更改。htaccess文件?或者,更好的是,是否有方法替换/覆盖编辑。我的CPT的php屏幕?

提前感谢

文森特。

1 个回复
最合适的回答,由SO网友:Vinzz 整理而成

我找到了一种在由WP生成的post类型表上方添加html的方法。

add_filter( \'views_edit-my_cpt\', "custom_list_table"); 
function custom_list_table( $views ) {
    /* Print form */ ?>         
    <form method="post" action="//your.url/?action=action">
        <? wp_nonce_field( \'action-form\', \'action_nonce\' );  ?>     
        <label for="field1"><? _e(\'your label\') ?></label><br />
        <input id="field1" type="text" name="field1"><input type="submit" name="submit" id="submitbtn" class="button button-primary" value="<? _e(\'Go\')?> ">
    </form><?   
    return $views;
}

相关推荐