Создать пост для каждого пользователя?

Мне было интересно, есть ли способ создать сообщение для каждого пользователя. Подобно массовому обновлению, которое связывает определенную мета-пользователя с созданной записью.

Я бы предпочел запустить сценарий цикла, который проходит через всех пользователей и создает сообщение для каждого, используя определенную мета-информацию пользователя.

Например, если у меня есть пять пользователей, для которых я хотел бы создавать сообщения. Посты будут называться с использованием каждого из их полных имен.

Основной пример:

пользователей

Джонни

Джанни

Бобби

Craig

Митч

Пользователь Meta

Джон Доу

Джейн Доу

Боб Коллинз

Крейг Мэтьюз

Митчелл Хамфрис

Заголовок сообщения:

Джон Доу

Джейн Доу

Боб Коллинз

Крейг Мэтьюз

Митчелл Хамфрис

Этот запрос является необычным, но мне нужно временное исправление, пока я не закончу плагин для полного поиска пользователей. Любая помощь с этим была бы весьма признательна.

Создайте это как плагин и активируйте его. Он деактивирует себя после создания первичной страницы для авторов и подстраниц для каждого автора + или лучшей роли. В конце он дезактивирует себя.

Улучшите его, как хотите. Оно использует

// Hook activation to create new Author Pages register_activation_hook(__FILE__, function(){ // Create a Parent Page for all Author Pages if(!($parent = get_page_by_title('Authors'))){ $parent = wp_insert_post(array( 'post_type' => 'page', 'post_title' => 'Authors', 'post_content' => 'Authors are children of this page.', 'post_status' => 'draft', // Or publish )); } if(!$parent){ // Bad... ERROR! return; } // Get user IDs, get_users() returns too much data global $wpdb; $IDs = $wpdb->get_col("SELECT `ID` FROM {$wpdb->users} ORDER BY `user_registered` DESC;"); // Loop IDs and create subpages for Authors+ (not Subscribers) foreach($IDs as $ID){ // Get user $user = new WP_User($ID); // Only create pages for Authors! if(!$user->has_cap('edit_posts')) continue; // Create page for Author $title = "About Author: {$user->display_name}"; if(!($child = get_page_by_title($title))){ $child = wp_insert_post(array( 'post_type' => 'page', 'post_title' => $title, 'post_name' => $user->display_name, 'post_content' => 'Write stuff about the Author.', 'post_status' => 'draft', // Or publish 'post_parent' => $parent, )); // Setup according Metas (for further tracking) update_post_meta($child, 'about_author', $user->user_login); update_post_meta($child, 'about_author_ID', $user->ID); } } // Done! WILL RUN JUST ONCE, deactivates itself afterwards. deactivate_plugins(__FILE__, true); die; }); 

Это своего рода хакерский подход, но он будет делать то, что вам нужно. Он использует закрытие PHP 5.3. Рассмотрите возможность возврата к совместимости PHP 5.2 с назначением 🙂

С уважением .