2014-01-23 58 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 } ?>