web-dev-qa-db-ja.com

最後のリビジョンの作者、作者リンク、日付を取得します

私は投稿から最終更新日と作者を取得するためのいくつかのつまらないものがあります。

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

残念ながら、この2つの機能は私にとってはうまくいかないようです。 Plugin WP User Frontendと別のユーザーで投稿を編集しようとしていました。しかし、管理者でなければ、なんらかの方法で[WP保存できないことがあります。しかし正しいリビジョンは保存されます。それで、私の質問は、どうやって作者、作者リンク、そして最新のリビジョンの日付を入手するのですか?

注:最近私は番号のリビジョンを取得するための関数をコーディングしました - 役に立つのであれば:

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

the_modified_author()を取得するには、フォルダwp-includesを検索し、author-template.phpを検索する必要があります。

行101は次のことを示しています。

/**
 * 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();
}

あなたは使用することができます:<?php echo get_the_modified_author(); ?>

the_modified_date();を取得するには、同じフォルダー(wp-includes)を見て、ファイルgeneral-template.phpを見つける必要があります。
2251行目は以下のとおりです。

/**
 * 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 );
}

あなたは使用することができます:<?php echo get_the_modified_date(); ?>

詳しくはをご覧ください。
the_modified_author();
the_modified_date();

最後に投稿を修正した著者からのURLを取得するために、私はfunctionを使うことを提案します。
(まずfunctions.phpのバックアップを作成してからこの関数を追加してください)

/**
 * 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

注:参考として、上記の関数の@link URLを参照してください。


テンプレートの中で次のように使うことができます。

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

最後に投稿を修正した作者の名前が 'clickable'になりました。

1
Charles