Wordpress过滤器处理自定义帖子类型上的自定义操作按钮

时间:2015-05-11 04:18:04

标签: custom-post-type wordpress

我创建了名为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过滤器来放置我的自定义动作处理程序?

custom-button-action

1 个答案:

答案 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文件。您现在可以根据需要自定义功能。