我正在尝试设计我的第一个wordpress主题。只有“网站管理员”登录才能看到“编辑按钮”。对于其他人,应该隐藏它。 我已经为该按钮提供了一个类(所以它看起来像网站上的其他按钮)。
当我们未登录时,按钮仍会显示,但为空。
当我们登录时,代码如下所示:
<!-- edit button -->
<div class="editbutton buntbutton">
<a><span class="edit-link mymetatitle"><a class="post-edit-link" href="http://localhost:8888/WP_DEVELOPMENT/wp-admin/post.php?post=1241&action=edit">Edit your post</a></span></a>
</div>
当我们没有登录时,它看起来像这样:
<!-- edit button -->
<div class="editbutton buntbutton">
<a></a>
</div>
所以不同的是,当我们没有登录时,.editbutton中的“a tag”为空。
我能用jQuery检查它们并在“a tag”为空时隐藏它吗?我尝试过这样的事情:
var editbuttonempty = $(".editbutton a").length();
if (editbuttonempty < 1) {
$(this).css("visibility", "hidden");
}
......但它仍然无效。有关如何做到这一点的任何建议?谢谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以使用text()
获取div&amp;中的文本数据隐藏div的hide()
var editbuttonempty = $(".editbutton a").text().length();
if (editbuttonempty < 1) {
$(this).hide();
}
文档: http://api.jquery.com/text/
您也可以使用is()
if ($(".editbutton a").is(':empty')) {
$(this).hide();
}
答案 2 :(得分:1)
为什么要向非管理员显示编辑按钮标记?
为什么要使用更多代码来膨胀您的页面以隐藏空的编辑按钮标记?
所提供的所有解决方案都是多余的。他们只是通过添加更多代码来掩盖问题。我的方法是从根本上处理问题。下面的PHP代码会检查您的管理员是否显示编辑按钮标记,否则它不会显示任何内容。无需额外的代码。
<?php if (current_user_can('level_10')) { ?>
<!-- edit button -->
<div>
<?php edit_post_link(__("— Edit ↓", "\n<span class=\"post-edit\">", "</span>\n")); ?>
</div>
<?php } ?>
答案 3 :(得分:1)
...或者只是使用is_admin()隐藏用户的全部内容。 Wordpress的设计理念是“不要展示你不需要的东西”,所以你不必乱搞这些东西。只要你不试图建立一个完全ajaxe的主题。
<?php if ( ! is_admin() ) { ?>
<!-- do whatever you want if you ware not logged in as admin -->
<div class="editbutton buntbutton"><a><span [...] >Edit your post</a></span></a></div>
<?php } else { ?>
<!-- do what you need if not logged in -->
<div class="editbutton buntbutton"><a></a></div>
<?php } ?>
答案 4 :(得分:0)