2014-01-23 55 views
1

我想设计我的第一个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是空的,当我们没有登录。

我能检查他们与jQuery和隐藏它,如果”标签“为空吗?我尝试这样的事情:

var editbuttonempty = $(".editbutton a").length(); 

if (editbuttonempty < 1) { 
    $(this).css("visibility", "hidden"); 
} 

...但它仍然无法正常工作。有关如何做到这一点的任何建议?谢谢!

+0

而不是隐藏按钮,如果文本为空,是否有可能隐藏它的基础上它的类?也就是说,不是根据登录状态改变文本,而是改变类。这样你就不需要JS了,再加上它更接近于如何使用类。 – Zhihao

回答

2

怎么样使用:empty,若有隐瞒其父:

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

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

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

+0

谢谢,这是一个不错的解决方案,并完美地工作! =) –

1

您可以使用text()进去DIV & hide()文本数据隐藏的div

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/

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

FIDDLE

隐藏.editbutton元件时,它包含一个空的锚定件。

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 } ?> 
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 } ?>