我创建了名为campaign
的自定义帖子类型,然后我使用post_row_actions
过滤器创建了自定义操作按钮。
function hipwee_add_action_button($actions, $post){
if(get_post_type() === 'campaign'){
$actions['export'] = '<a href="#">Export Result</a>';
}
return $actions;
}
add_filter( 'post_row_actions', 'hipwee_add_action_button', 10, 2 );
如上所示,我添加了一个名为“导出结果”的新操作按钮, 但现在,如何添加一个函数来处理导出,是否有可用的wordpress过滤器来放置我的自定义动作处理程序?
答案 0 :(得分:2)
试试这段代码:
function hipwee_add_action_button($actions, $post){
if(get_post_type() === 'campaign'){
$url = add_query_arg(
array(
'post_id' => $post->ID,
'my_action' => 'custom_export_post',
)
);
$actions['export'] = '<a href="' . esc_url( $url ) . '" target="_blank" >Export Result</a>';
}
return $actions;
}
add_filter( 'post_row_actions', 'hipwee_add_action_button', 10, 2 );
add_action( 'admin_init', 'custom_export_function' );
function custom_export_function(){
if ( isset( $_REQUEST['my_action'] ) &&
'custom_export_post' == $_REQUEST['my_action'] ) {
$data = array(
'hello' => 'world'
);
header('Content-Type: application/json');
header('Content-Disposition: attachment; filename="sample.json"');
echo json_encode($data);
exit;
}
}
它的作用:
点击Export Result
按钮后,会打开一个新窗口,其中参数my_action
的值为custom_export_post
。现在,另一个函数custom_export_function
被挂钩到admin_init
。此功能充当主要导出器。在示例中,示例数组被导出到JSON文件。您现在可以根据需要自定义功能。