wp_posts テーブルに更新者の情報はなさそうなので、更新者のIDをカスタムフィールドに保存します。
既存の投稿でまだ保存していないときは、投稿者を更新者としています。
★functions.php
add_action( 'publish_post', 'save_edit_user', 1 ,10);
function save_edit_user($post_id) {
update_post_meta( $post_id, '_edit_post_user', get_current_user_id() );
}
★single.php
<?php
$edit_user_id = get_post_meta(get_the_ID(),'_edit_post_user',true);
echo '更新者:';
if ($edit_user_id > 0) the_author_meta( 'user_login', $edit_user_id );
else the_author();
なるほど。カスタムフィールドに情報を保持させて編集者を取得する方法で代用できるのですね。すばらしいアイデアありがとうございます。
ただ、フックのpublish_postなんですがいくら更新してもカスタムフィールドに_edit_post_userが作られません。
そこで、試しにsave_postに変更してみたら作成できました。
バグかなんかでしょうかね。。。
カスタムフィールドの key を ‘save_post’ にしたのですか?
先頭に ‘_’ が付いているカスタムフィールドは、通常のカスタムフィールドとして管理画面には表示されません。表示されないだけで、きちんと機能しているのではないですか?
無理に key に ‘_’ を付ける必要もないのですが、意味不明なカスタムフィールドが表示されるとイヤかなと思い ‘_’ を付けただけです。
もし、ポストがカスタム投稿タイプならフックは、’publish_{post_type}’ にする必要があります。
追:
フックが ‘save_post’ ということですね。それの方がいいかもしれません。