問題描述

我想在標籤名稱中使用逗號?例如,"hello, world""portland, or",但 Wordpress 保持分離。我可以從類別頁面進行:

image http://img839.imageshack.us/img839/6869/picturepp.png

它顯示正常。但是從帖子側邊欄新增的任何內容都不會顯示在此處:

image http://img52.imageshack.us/img52/4950/picture1oax.png

這裡有一些討論:http://core.trac.wordpress.org/ticket/14691,但看起來可能無法解決,至少有一段時間。

在此期間,我正在尋找一個比類別頁面新增類別更簡單的解決方案。

我嘗試搜尋外掛,沒有看到任何有用的東西。當顯示類別列表或標籤時,有幾個處理用其他字元替換逗號,但是我沒有看到允許使用者替換預設分隔符的任何外掛。

我不在乎我是否必須自己修補核心。理想情況下,我可以編寫一個外掛,但是在檢視了一些程式碼之後,我無法弄明白哪裡可以處理。

有沒有人有解決方案,或提示什麼功能和 javascript 開始駭客攻擊?我不知道從哪裡開始看程式碼。

最佳解決方案

不需要核心駭客 – 感謝:HOOKS 。

鉤子允許用一個很好的組合來解決這個問題

  • 在輸出之前用 「,」 替換”–“ 的過濾器

  • 和一個”if” 塊,以確保輸出也沒有為管理介面過濾:)

  • 最後,用格式”Fox–Peter” 而不是 「Fox,Peter」 儲存所有的標籤,

以下是程式碼:

// filter for tags with comma
//  replace '--' with ', ' in the output - allow tags with comma this way
//  e.g. save tag as "Fox--Peter" but display thx 2 filters like "Fox, Peter"

if(!is_admin()){ // make sure the filters are only called in the frontend
    function comma_tag_filter($tag_arr){
        $tag_arr_new = $tag_arr;
        if($tag_arr->taxonomy == 'post_tag' && strpos($tag_arr->name, '--')){
            $tag_arr_new->name = str_replace('--',', ',$tag_arr->name);
        }
        return $tag_arr_new;
    }
    add_filter('get_post_tag', 'comma_tag_filter');

    function comma_tags_filter($tags_arr){
        $tags_arr_new = array();
        foreach($tags_arr as $tag_arr){
            $tags_arr_new[] = comma_tag_filter($tag_arr);
        }
        return $tags_arr_new;
    }
    add_filter('get_terms', 'comma_tags_filter');
    add_filter('get_the_terms', 'comma_tags_filter');
}

也許在我的部落格文章的一些額外的細節,該主題的幫助以及.. http://blog.foobored.com/all/wordpress-tags-with-commas/

格雷斯,安迪

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。