2011-01-11 14 views
1

Wordpressでは、Wordpressウィジェット内のアイテムをリストするための「最後の」クラスと「最初の」クラスを追加する方法を探しています。私は、「コメント1」、「コメント4」、「リンク1」と「リンクを李に追加最初/最後のクラスを持っているしたいのですが、上記の例ではWordpressのウィジェットコンテンツに最初と最後のクラスを追加する

<div class="widget-area"> 
<ul > 
    <li class="widget_recent_comments"> 
     <h3 class="widget-title">Recent comments</h3> 
     <ul id="recentcomments"> 
      <li class="recentcomments">Comment 1</li> 
      <li class="recentcomments">Comment 2</li> 
      <li class="recentcomments">Comment 3</li> 
      <li class="recentcomments">Comment 4</li> 
     </ul> 
    </li> 
    <li class="widget_my_links"> 
     <h3 class="widget-title">My links</h3> 
     <ul id="my-links"> 
      <li class="item">Link 1</li> 
      <li class="item">Link 2</li> 
      <li class="item">Link 3</li> 
      <li class="item">Link 4</li> 
      <li class="item">Link 5</li> 
     </ul> 
    </li> 
</ul></div> 

:HTMLは、このようになります。 5 "となる。

簡単な回避策はありますか? (私はjavascriptでこれをしたくない)

ありがとう。

+0

WordPressウィジェットの出力方法にフックを探します。私はそれがすべてを吐く前に、少なくとも1つが最後にあるべきだと確信しています。要件があれば、それは唯一の選択肢です。 本当にハッキーなやり方は、出力バッファリングを使用して出力を捕捉して再処理することです。しかし、すべてのソリューションを更新するには、ベースウィジェットクラスにフックする必要があります。 JavaScriptソリューションを強くお勧めします。文字通りjQueryの1行です。単純なトラバーサルと属性操作なので、遅くなることはありません。 – hlfcoding

答えて

0

私はこれらのリストがループで生成されていると推測しています。だからあなたができることは、あなたがループに入る前に変数を作成し、その値を1($ i = 1)に設定することです。ループの最後より1つ上に($ i ++)を追加します。あなたが表示される最初/最後のクラスを配置したい場所を、あなたは$ I == $ NUMBER_OF_ITEMSで

<?php if($i == 1): 
    echo ' first'; 
elseif($i == $number_of_items) 
    echo 'last'; 
endif;  
?> 

を行うことができますさて、あなたは現在と最大を比較しているので、あなたは、あなたがif文の最後を持って知っています本当です。

これはあなたの質問にお答えします。

+0

実際のループ(またはwordpressで呼び出される "the loop")はwordpress-codeにあるので、それを変更することはできません。私はいくつかの種類のフィルタを追加することをもっと考えていましたが、より簡単なソリューションがあることを望んでいました。 – user571188

+0

いいえ「ループ」は、投稿をループして一方向に表示するファイルです。ウィジェットは、個別のプラグインまたは関数であり、上書きすることができます。あなたはWordPressの標準テンプレートを使用していますか?なぜなら、これらのリストはおそらくsidebar.phpで生成されるか、関数の呼び出しはsidebar.phpで行われるからです。 sidebar.phpを編集しても問題ありません。関数が呼び出された場合は、functions.phpでその関数を上書きするか、関数をfunctions.phpにコピーして名前を変更して名前を変更し、代わりに関数を呼び出すことができます。 –

+0

いいえ、@ Jasper、WordPressは、あなたが意味する方法で、ユーザーの側でループすることへのアクセシビリティ。 – JakeParis

0

まあ最初の項目はちょうどそれがクラスを追加していない

ul#my-list li:first-child { 
    /* special styles */ 
} 

使い、簡単ですが、あなたはまだそれをスタイルすることができます。 :last-childの同様のCSSルールはありません

+0

真。問題は私はIE6のサポートが必要なので、IMのように見えます:最初の子供とIE6のためのjavascriptハックを行う。あなたのご意見ありがとうございます。 – user571188

関連する問題