为空时隐藏编辑按钮

时间:2014-01-23 15:24:28

标签: jquery html css wordpress

我正在尝试设计我的第一个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&amp;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");
}

......但它仍然无效。有关如何做到这一点的任何建议?谢谢!

5 个答案:

答案 0 :(得分:2)

使用:empty怎么样,如果是这样,请隐藏其父级:

  

选择所有没有子元素的元素(包括文本节点)。

代码:$(".editbutton a:empty").parent().hide();

演示:http://jsfiddle.net/IrvinDominin/sBAnB/

答案 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();
}

文档: http://api.jquery.com/is/

答案 2 :(得分:1)

为什么要向非管理员显示编辑按钮标记?

为什么要使用更多代码来膨胀您的页面以隐藏空的编辑按钮标记?

所提供的所有解决方案都是多余的。他们只是通过添加更多代码来掩盖问题。我的方法是从根本上处理问题。下面的PHP代码会检查您的管理员是否显示编辑按钮标记,否则它不会显示任何内容。无需额外的代码。

<?php if (current_user_can('level_10')) { ?>

            <!-- edit button -->
            <div>
              <?php edit_post_link(__("&#8212; Edit &darr;", "\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)

$('.editbutton:has(a:empty)').hide();

FIDDLE

.editbutton元素包含空锚时隐藏它。