自动更改页面密码

时间:2015-01-14 作者:Charles Wayne

有没有办法根据日期间隔自动更改wordpress页面密码?

例如,我想每两天更改一次页面密码。

数据库中存储的页面密码在哪里?似乎找不到它。

我在这里看到了一个相关的帖子How to automatically apply a password to all posts within a custom post type

这能以同样的方式应用于页面吗?

谢谢

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

帖子/页面密码存储在wp_posts 中的表post_password 领域

您可以尝试以下演示插件,在的帮助下自动更新post密码wp-cron. 您也可以考虑transientscustom post meta.

<?php
/**
 * Plugin Name: Auto Post-Password Changer
 * Description: Schedule a wp-cron password update event that runs every 2nd day  
 * Plugin URI:  http://wordpress.stackexchange.com/a/174820/26350
 * Author:      Birgir Erlendsson (birgire)
 * Version:     0.0.1
 */

add_action( \'wpse_change_pass_event\', function()
{
    // Update the post password for a given slug.
    // See for example: http://wordpress.stackexchange.com/a/130535/26350

    $slug = \'hello-world\'; // Edit this post slug to your needs!

    global $wpdb;
    $wpdb->update(
        $wpdb->posts,
        array( \'post_password\' => uniqid() ),
        array( \'post_name\'     => $slug    ),
        array( \'%s\' ),
        array( \'%s\' )
    );
});

add_filter( \'cron_schedules\', function( $schedules )
{
    // Our custom cron interval:
    $schedules[\'every_2nd_day\'] = array(
        \'interval\'  => 2 * DAY_IN_SECONDS,
        \'display\'   => \'Once every second day\'
    );

    return $schedules;
});

register_activation_hook( __FILE__, function()            
{ 
    // Start the cron job:
    wp_schedule_event( time(), \'every_2nd_day\', \'wpse_change_pass_event\' );
});


register_deactivation_hook( __FILE__, function()
{
    // Stop the cron job:
    wp_clear_scheduled_hook( \'wpse_change_pass_event\' );
});
您只需修改$slug 要修改的页面的。

请注意,您需要访问站点才能激活wp cron。

这里我们使用PHP函数uniqid() 生成密码,其形式如下:

Random post password every second day

我希望您能将此扩展到您的需要。

结束

相关推荐

使用Get_Pages()或Get_Posts()获取所有页面和帖子

尝试获取所有帖子(我指的是来自自定义帖子类型的所有页面、帖子和帖子)。这可能吗?文档中说我只能将字符串作为post_type 那么,我如何获得所有页面和自定义帖子类型呢?调用自定义post类型的示例project$args = array( \'exclude\' => $inclPages, \'post_type\' => \'pages,project\', \'title_li\' => __(\'\'),&