Create post for every user?

时间:2011-10-20 作者:user1893

我想知道有没有办法为每个用户创建一个帖子。有点像大规模更新,将某些用户元与创建的帖子相关联。

我更喜欢运行一个循环脚本,该脚本遍历所有用户,并使用特定的用户元信息为每个用户创建帖子。

例如,如果我有五个想要为其创建帖子的用户。这些帖子的标题将使用每个帖子的全名。

基本示例:

Users

约翰尼

珍妮

鲍比

克雷格

米奇

User Meta

约翰·多伊

无名氏

鲍勃科林斯

克雷格·马修斯

米切尔·汉弗莱斯

Post Titles:

约翰·多伊

无名氏

鲍勃科林斯

克雷格·马修斯

米切尔·汉弗莱斯

这个请求并不常见,但我需要一个临时修复程序,直到我完成一个插件进行完整的用户搜索。在此方面的任何帮助都将不胜感激。

1 个回复
最合适的回答,由SO网友:EarnestoDev 整理而成

将其创建为插件并激活。它为作者创建主页,并为每个作者+或更好的角色创建子页后,将停用自身。最后,它会自行停用。

如你所愿进行改进。它使用

// 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;
});
这是一种黑客方法,但可以满足您的需要

Regards.

结束

相关推荐

WordPress Query_Posts和orderby页面顺序

我有一个页面,列出了当前页面的所有子页面。每个页面都在wordpress编辑器中分配了一个订单号,但由于某种原因,它们没有排序。我是这样安排的:产品-第1页-第2页-第3页-第4页-第5页我的query\\u帖子如下所示:query_posts(\'post_type=page&order=ASC&orderby=\'.$post->menu_order.\'&post_parent=\'.$post->ID); 但输出结果如下:1,3,2,5,4如何使用内置