web-dev-qa-db-fra.com

Obtenir la dernière révision auteur, auteur-lien et date

J'ai quelques trubles pour obtenir la dernière date modifiée et l'auteur d'un post.

<?php the_modified_author(); ?> <!--/*and*/--> <?php the_modified_date(); ?>

Malheureusement, ces deux fonctions ne semblent pas fonctionner pour moi. J'essayais de modifier un message avec le plugin WP User Frontend et un autre utilisateur. Mais certains comment WP ne l'enregistre pas, si ce n'est pas l'administrateur. Cependant, la révision correcte est enregistrée. Ma question est donc de savoir comment obtenir l'auteur, le lien auteur et la date de la dernière révision.

Remarque: Récemment, j'ai codé une fonction pour obtenir les révisions des nombres - si cela peut vous aider:

function revisions_number( $post_ID = '', $zero = '', $one = '', $more = '' ) {

    $args = array( 'post_parent' => $post_ID, 'post_type' => 'revision', 'post_status' => 'inherit');
    $query = get_children($args);

    $more = str_replace(array('%', ''), count($query), $more);// replacing % with revisions number

    if ( count($query) == 0 ) { // has 0 revisions
    echo $zero; 

    } elseif ( count($query) == 1 ) { // has 1 revision
    echo $one;

    } else { // has at least 2 revisions
    echo $more;

    }
}
1
Game Unity

Pour obtenir the_modified_author(), nous devons rechercher dans le dossier wp-includes et rechercher le author-template.php .

La ligne 101 montre:

/**
 * Display the name of the author who last edited the current post,
 * if the author's ID is available.
 *
 * @since 2.8.0
 *
 * @see get_the_author()
 */
function the_modified_author() {
    echo get_the_modified_author();
}

Vous pouvez utiliser:<?php echo get_the_modified_author(); ?>

Pour obtenir the_modified_date();, nous devrons consulter le même dossier ( wp-includes ) et trouver le fichier general-template.php .
La ligne 2251 indique:

/**
 * Retrieve the date on which the post was last modified.
 *
 * @since 2.1.0
 *
 * @param string $d Optional. PHP date format. Defaults to the    "date_format" option
 * @return string
 */
function get_the_modified_date($d = '') {

    if ( '' == $d )
        $the_time = get_post_modified_time(get_option('date_format'), null, null, true);
   else
        $the_time = get_post_modified_time($d, null, null, true);

    /**
     * Filter the date a post was last modified.
     *
     * @since 2.1.0
     *
     * @param string $the_time The formatted date.
     * @param string $d        PHP date format. Defaults to value specified in
     *                         'date_format' option.
     */
    return apply_filters( 'get_the_modified_date', $the_time, $d );
}

Vous pouvez utiliser:<?php echo get_the_modified_date(); ?>

S'il vous plaît voir pour plus de détails:
the_modified_author ();
the_modified_date ();

Pour obtenir l'URL de l'auteur qui a modifié le message en dernier, je suggère d'utiliser une variable function.
(faites d'abord une sauvegarde de functions.php puis ajoutez cette fonction)

/**
 * Return the URL of the author (who modified post as last)
 * Codex:   {@link https://developer.wordpress.org/reference/functions/get_post_meta/}
 *          {@link https://codex.wordpress.org/Function_Reference/get_author_posts_url}
 *          
 * @version WordPress 4.6   
 */
function wpse_238105_modified_author_posts_url()
{
    global $post;

    // Get the ID of the author(meta: _edit_last)
    if ( $id = get_post_meta($post->ID, '_edit_last', true ) )
    {
        // return URL
        echo get_author_posts_url( $id );
    }
} // end function

Remarque: voir les URL @link dans la fonction ci-dessus pour les références.


Vous pouvez maintenant l'utiliser comme suit dans un modèle:

Last modified by <a href="<?php wpse_238105_modified_author_posts_url(); ?>"><?php the_modified_author(); ?> </a> on <?php the_modified_date(); ?>

Le nom de l'auteur qui a modifié le message en tant que dernier est maintenant "cliquable".

1
Charles