我无法使用@Mat解决方案。然而,它看起来是正确的。
WP将$post->post\\U author的值存储为字符串。然而get_the_author_meta( \'ID\' )
和get_current_user_id()
每个都返回一个整数,因此在IF语句的第二部分可以进行严格的比较。
如果更换get_the_author_meta( \'ID\' )
具有$post->post_author
您必须使用==
而不是===
作为比较运算符,因为$post->post\\u author的值是字符串get_current_user_id()
返回一个整数。
测试:
<?php echo \'Author ID type: \' . gettype( get_the_author_meta( \'ID\' ) ) . \'<br>\'; ?>
<?php echo \'Current user ID type: \' . gettype( get_current_user_id() ); ?>
<?php
echo \'Is logged in user the author? \';
if ( get_the_author_meta( \'ID\' ) == get_current_user_id() ) {
echo \'TRUE <br>\';
} else {
echo \'FALSE\';
}
?>
使用适用于我的严格比较运算符的解决方案:
<?php if ( is_user_logged_in() && get_the_author_meta( \'ID\' ) === get_current_user_id() ) : ?>
//...
<?php endif; ?>