web-dev-qa-db-fra.com

Changer automatiquement le mot de passe de la page

Existe-t-il un moyen de changer automatiquement le mot de passe de la page wordpress en fonction de la date intervalle?

Par exemple, je souhaite changer un mot de passe de page tous les 2 jours.

Où le mot de passe de la page est-il stocké dans la base de données? Je n'arrive pas à le trouver.

J'ai vu un article lié ici Comment appliquer automatiquement un mot de passe à tous les articles d'un type d'article personnalisé

Cela peut-il être appliqué de la même manière aux pages?

Merci

1
Charles Wayne

Les mots de passe de publication/page sont stockés dans la table wp_posts du champ post_password.

Vous pouvez essayer le plug-in de démonstration suivant pour mettre à jour le mot de passe suivant automatiquement à l'aide de wp-cron . Vous pouvez également envisager des transitoires ou méta post personnalisé .

<?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' );
});

Il vous suffit de modifier le $slug de la page à modifier.

Notez que vous avez besoin d'un trafic sur votre site pour activer le wp-cron.

Ici, nous utilisons la fonction PHP uniqid() pour générer le mot de passe. Son format est donc le suivant:

Random post password every second day

J'espère que vous pourrez l'étendre à vos besoins.

2
birgire