Wordpress,在帖子类型列表页面上添加自定义按钮

时间:2015-04-23 00:29:19

标签: php wordpress-plugin wordpress

我正在尝试在帖子类型页面顶部添加自定义按钮,就像这张图片一样 enter image description here

我可以使用任何过滤器或操作在那里添加自定义按钮吗?

由于

6 个答案:

答案 0 :(得分:10)

我找到了一种方法来完成它,但我对这个程序不是很满意。如果你找到更好的方法,请添加你的答案。同时,这可能会有所帮助。

add_action('admin_head-edit.php','addCustomImportButton');

我只需要在编辑页面上使用此功能,因此我使用admin_head-edit.php操作,但您可以使用admin_head或其他一些(非特定要求)

/**
 * Adds "Import" button on module list page
 */
public function addCustomImportButton()
{
    global $current_screen;

    // Not our post type, exit earlier
    // You can remove this if condition if you don't have any specific post type to restrict to. 
    if ('module' != $current_screen->post_type) {
        return;
    }

    ?>
        <script type="text/javascript">
            jQuery(document).ready( function($)
            {
                jQuery(jQuery(".wrap h2")[0]).append("<a  id='doc_popup' class='add-new-h2'>Import</a>");
            });
        </script>
    <?php
}

答案 1 :(得分:4)

深入研究WordPress核心代码我没有找到该按钮的任何钩子或任何过滤器,您也可以看到从行号281到行号288的代码。但您可以根据此here添加按钮filter

add_filter('views_edit-post','my_filter');
add_filter('views_edit-page','my_filter');

function my_filter($views){
    $views['import'] = '<a href="#" class="primary">Import</a>';
    return $views;
}

希望它对你有所帮助。

答案 2 :(得分:1)

可接受的答案遗憾地仍然是唯一有效的答案。

但是,由于管理员标题已被回答,因此正确的脚本现在应该是:

jQuery(jQuery(".wrap .page-title-action")[0]).after('<a href="#" class="page-title-action">Import</a>');

答案 3 :(得分:1)

如果您正在使用WP_Lists_table类(应该使用),那么这是正确的方法:

add_action('manage_posts_extra_tablenav', 'add_extra_button');
function add_extra_button($where)
{
    global $post_type_object;
    if ($post_type_object->name === 'shop_order') {
        // Do something
    }
}

答案 4 :(得分:0)

不幸的是,显示“添加新”按钮后没有调用任何挂钩。 在不使用JavaScript的情况下添加内容的最接近的地方是下方,标题和“添加新内容”如下:

enter image description here

在我的示例中,我使用钩子“ edit_form_top”将按钮添加到了自定义帖子类型“ Event”:

add_action('edit_form_top', 'add_custom_button');

function add_custom_button($id){
    if ($post->post_type != 'event') return false;
    echo('<button>Custom button</button>');
}

答案 5 :(得分:0)

Touqeer Shafi 的回答让我找到了正确的方向,我需要在我的表格视图顶部添加一个按钮来自定义帖子类型(书),我只需要更改 {{1 }} 使其工作:

JsonSerializerSettings