2017-01-03 14 views
0

Wordpress関連の質問があります。今、私はこのように私の年間ベースのカスタムポストタイプのアーカイブを取得しています:あなたが見ることができるように、私は値と年に関連するデータフィルタ値を作成していWordpress:wp_get_archivesドロップダウンでカスタム値を作成

$args = array ( 
    'type' => 'yearly', 
    'post_type' => 'project', 
    'format' => 'custom', 
    'before' => '<li value="2016" data-filter-value=".classof2016">', 
    'after' => '</li>' 
); 

wp_get_archives($args);    

。結果は次のようになります。

<li value="2016" data-filter-value=".classof2016">2016</li> 
<li value="2015" data-filter-value=".classof2015">2015</li> 
<li value="2014" data-filter-value=".classof2014">2014</li> 

このソリューションはどのようにして実現できますか?誰も助けることができますか?

ありがとうございます! Cara

答えて

1

wp_get_archives()get_archives_link()を使用します。ここでは使用できるフィルタフックです。

Sourcecodeが最適です。

は(あなたのfunctions.phpで)これを試してみてください:

add_filter('get_archives_link', function($link_html, $url, $text, $format, $before, $after) { 

    if ('custom' == $format) { 
     $link_html = "\t<li value=\"". esc_attr($text) ."\" data-filter-value=\".classof". esc_attr($text) ."\">$before<a href='$url'>$text</a>$after</li>\n"; 
    } 

    return $link_html; 

}, 10, 6); 

しかし、方法によって:li要素でvalue属性は有効なHTMLではありません。

+0

ありがとう@Andy、私はあなたのコードを使用しました。 'return $ output;の代わりに' return $ link_html; 'を使いました。それは正しい?そしてbtw:私は 'value'属性を削除しました。ヒントありがとう! – CaraMar

+0

はい、$ link_htmlは正しく、私のせいです。 –

関連する問題