2017-01-03 54 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> 

我該如何實現此解決方案?任何人都可以幫忙?

在此先感謝! 卡拉

回答

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元素A value屬性是無效的HTML。

+0

謝謝@Andy,我用你的代碼。而不是'return $ output;'我使用'return $ link_html;'然後它工作。這是對的嗎?順便說一句:我刪除了'value'屬性。感謝提示! – CaraMar

+0

是的,$ link_html是對的,我的錯。 –