检查用户是否为当前页面的所有者

时间:2014-10-13 作者:odinp123

我正在努力解决这个小问题。我有一个用户配置文件页面,我想根据它是否是我自己的配置文件或其他人的配置文件来更改一些内容。这是我添加一个短代码的代码,它最终将调用其他短代码。

function is_mine_func() {
if (is_author() ) {
    echo \'it is my site\';
   // echo do_shortcode(\'[wpfepp_submission_form form="2"]\' );
    }
else 
    {
        echo \'its not your site\';
    //echo do_shortcode(\'[userpro template=postsbyuser postsbyuser_mode=grid]\' );
    }
}
add_shortcode( \'minminmin\', \'is_mine_func\' ); 
我有一种感觉,is\\u author不是这样做的正确方式,因为无论我是否是该页面的作者,我总是收到“its not your site”的消息。

is\\u author()不应该评估我是否是“this”页的作者吗?

2 个回复
最合适的回答,由SO网友:Pat J 整理而成

根据法典,is_author() 检查您是否位于作者存档页面(即,列出给定用户编写的所有帖子/页面等的页面)。如果您在任何其他类型的页面上,is_author() 将返回false.

您要寻找的内容听起来更符合以下内容:

if ( in_the_loop() )
{
    get_currentuserinfo();
    print ( get_the_author() === $GLOBALS[\'current_user\']->display_name )
        ? \'It is my site.\'
        : \'It is not my site.\';
}
循环中必须使用此代码。

参考文献is_author()
  • get_the_author()
  • get_currentuserinfo()
  • in_the_loop()
  • SO网友:MetalAdam

    我会尝试使用作者ID而不是用户名:

    if ( get_current_user_id() == get_the_author_meta( \'ID\' ) ) {
        echo "It is my site.";
    else {
        echo "It\'s not my site";
    };
    
    参考文献get_current_user_id
  • get_the_author_meta
  • 结束

    相关推荐

    Content between shortcodes

    我想知道是否有一种方法可以在短代码之间获取内容并将其输入到字符串中,例如,我希望能够拥有[短代码]Hello World![/shortcode]输入一个名为$ShortCodeText的字符串,我该怎么做?