Je me demandais s'il y avait un moyen de créer un post pour chaque utilisateur. Un peu comme une mise à jour en masse qui associerait certaines méta-utilisateurs à la publication créée.
Je préférerais exécuter un script en boucle qui passe par tous les utilisateurs et crée un post pour chacun en utilisant certaines méta-informations d'utilisateur.
Par exemple, si j'ai cinq utilisateurs pour lesquels je voudrais créer des publications. Les messages seraient intitulés en utilisant chacun de leurs noms complets.
Exemple de base:
Utilisateurs
johnny
jannie
bobbie
craig
mitch
Méta utilisateur
John Doe
Jane Doe
Bob Collins
Craig Matthews
Mitchell Humphries
Titres de publication:
John Doe
Jane Doe
Bob Collins
Craig Matthews
Mitchell Humphries
Cette demande est rare mais j'ai besoin d'une solution temporaire jusqu'à ce que je termine un plugin pour une recherche complète de l'utilisateur. Toute l'aide pouvant etre apportée serait très appréciée.
Créez ceci comme un plugin et activez-le. Il se désactive lui-même après avoir créé une page primaire pour les auteurs et des sous-pages pour chaque rôle Auteur + ou supérieur. À la fin, il se désactive.
Améliorez-le comme vous le souhaitez. Il utilise
// 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;
});
C'est un peu une approche simpliste mais fera ce dont vous avez besoin. Il utilise un PHP 5.3 Fermeture. Envisagez de revenir à la compatibilité PHP 5.2 avec une affectation :)
Cordialement .