你在打电话get_post_meta()
以两种不同的方式:第一,离开$single
取消设置(默认为false
) 将获得给定键的完整元条目数组;第二,设置$single
到true
, 将仅使用该键获取第一个项目。
我相信,您想要的是在post_is_read
元。
下面是我如何解决这个问题的:
single page template
// Get the list of readers.
$readers = get_post_meta( get_the_ID(), \'post_is_read\', true );
// If the value is empty, make sure it\'s an array.
if ( empty( $readers ) ) {
$readers = array();
}
$current_user = wp_get_current_user();
if ( ! in_array( $current_user->ID, $readers ) ) {
// Adds the current user ID to the $readers array.
$readers[] = $current_user->ID;
// Updates the \'post_is_read\' meta.
update_post_meta( get_the_ID(), \'post_is_read\', $readers );
}
posts loop
$readers = get_post_meta( get_the_ID(), \'post_is_read\', true );
if ( empty( $readers ) ) {
$readers = array();
}
$current_user = wp_get_current_user();
if ( ! in_array( $current_user->ID, $readers ) ) {
// If the current user hasn\'t read the post, make a note of it.
echo \'unread post\';
}