所以,我有一个小部件,我只想把它显示给页面作者。
我使用了以下逻辑:is\\u author()
然而,它似乎不起作用(它显示非作者)
我是否使用了这种逻辑?
有什么建议吗?
非常感谢。
所以,我有一个小部件,我只想把它显示给页面作者。
我使用了以下逻辑:is\\u author()
然而,它似乎不起作用(它显示非作者)
我是否使用了这种逻辑?
有什么建议吗?
非常感谢。
is\\u author()仅用于存档页。抄本引述:
is\\u author()检查是否显示作者存档页
因此,查看单个帖子或页面并不能从is\\u author()获得一个TRUE。
我想你会想要这样的东西:
global $post,$current_user; // get the global variables to check
get_currentuserinfo(); // get current user info
// Now check if the author of this post is the same as the current logged in user
if ($post->post_author == $current_user->ID) {
// do code here
}
我希望这能有所帮助。:)编辑#1:缩短代码版本。
// Check if the author of this post is the same as the current logged in user
if ( $post->post_author == get_current_user_id() ) {
// do code here
}
您可以使用:
$obj = get_queried_object();
$user_id = get_current_user_id();
// check if page\'s post author is same as logged in user
if (isset($obj->post_author) && $obj->post_author == $user_id) {
// ... do your stuff here
}
使用get_queried_object
函数获取当前页的对象。当请求页面应为“page”类型时,您将获得当前页面的WP\\u Post对象(Post\\u type=“page”)。这个get_current_user_id
这是不言而喻的。
因此,如果两者匹配,您将得到当前用户的代码,该用户是页面的创建者。
您还可以检查查询的对象是否为“页面”:
if ($obj instanceof WP_Post && $obj->post_type == \'page\') {
// ...
}
我的顶部菜单中列出了几页。这些是:联系人、我的帐户和消息。我在admin的“Pages Sidebar”选项卡中添加了一个地图。但它似乎将地图添加到上面列出的所有3个页面中,但我只希望它出现在联系人页面上,而不是其他2个页面上,因为在其他2个页面中,我希望看到其他内容(可能是针对会员的广告)。我该怎么做?谢谢你的帮助。