Ändern Sie die user.php-Seite, um eine Seite / einen Beitrag auf die Schaltfläche zu erstellen

Ich versuche, eine neue Spalte in users.php (WordPress Users Page) mit Schaltflächen zu erstellen.

Jede Schaltfläche, die dem Benutzer zugeordnet ist, muss eine Seite oder einen Beitrag erstellen (basierend auf meiner programmgesteuerten Auswahl).

Ich habe ein Problem damit, wie man die function aufruft, um die Seite / den Post innerhalb der class zu erstellen.

Hier ist ein Beispielcode, mit dem ich spiele:

class Create_Pages_On_User_Click { .............. .............. .............. public function actions() { add_filter('manage_users_columns', array( $this, 'hn_create_associated_page_column')); add_action('manage_users_custom_column', array( $this, 'hn_create_custom_pages_content'), 10, 3); } // Add Create Page Column public function hn_create_associated_page_column($columns) { $columns['create_page_associated'] = 'Page Associated Action'; return $columns; } public function hn_create_custom_pages_content($value, $column_name, $user_id) { $postID_link = get_user_meta( $user_id, 'wp_ure_posts_list', true ); if ( 'create_page_associated' == $column_name ) { if ($postID_link != null) { return ''; } else { $my_personal_page_name = get_user_meta( $user_id, 'wp_s2member_custom_fields', true); $name_of_the_personal_page = @$my_personal_page_name['personal_page_name']; //return "Create Page"; // Call programmatically_create_post() on click and pass $postID_link and $name_of_the_personal_page return ''; } } return $value; } } function programmatically_create_post() { // Initialize the page ID to -1. This indicates no action has been taken. $post_id = -1; // Setup the author, slug, and title for the post $author_id = 1; $slug = 'example-post'; $title = 'My Example Post'; // If the page doesn't already exist, then create it if( null == get_page_by_title( $title ) ) { // Set the post ID so that we know the post was created successfully $post_id = wp_insert_post( array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => $author_id, 'post_name' => $slug, 'post_title' => $title, 'post_status' => 'publish', 'post_type' => 'post' ) ); die(); // Otherwise, we'll stop } else { // Arbitrarily use -2 to indicate that the page with the title already exists $post_id = -2; } // end if } // end programmatically_create_post add_filter( 'after_setup_theme', 'programmatically_create_post' ); 

Ich stecke seit drei Tagen an diesem Problem und brauche eine große Hand.

Vielen Dank im Voraus.

Solutions Collecting From Web of "Ändern Sie die user.php-Seite, um eine Seite / einen Beitrag auf die Schaltfläche zu erstellen"

Verwende wp-admin/admin.php mit einem action :

 ">Create Page 

Und dann haken Sie das Ereignis ein:

 function wpse_184153_create_page() { $redirect = admin_url( 'users.php' ); if ( ! empty( $_GET['user_id'] ) && $user = get_userdata( ( int ) $_GET['user_id'] ) ) { // Create your page // Add any URL parameters you need for the return page $redirect = add_query_arg( 'created_page', $user->ID, $redirect ); } // Send 'em back to users.php wp_redirect( $redirect ); exit; } add_action( 'admin_action_wpse_184153_create_page', 'wpse_184153_create_page' ); 

Sie können die function beliebig benennen. Der Schlüssel, den Sie beachten müssen, ist, wie der Hook dem Wert Ihres action mit dem Suffix admin_action_ .