[WordPress] KBoard掲示板のスレッドの並べ替えの方法を変更する

Last Updated:2023年07月17日| | コメントを残す

概要

KBoardを使用して掲示板を運営すると、デフォルトでスレッドは、最新の記事が最初に表示さ(Descending)されます。 時間の順序を変更したり、スレッドのタイトルを基準にアルファベット(ABC)の順に並べ替えたり、逆ソートすることを希望する場合があります。

KBoardでは、この場合に使用可能なフィルタとしてkboard_list_orderbyフィルタを提供しています。 KBoardと関連するすべてのactionとfilterは ここで確認が可能です。

掲示板書き込みリストを過去記事からの並べ替え(追加)

掲示板のリストを文番号と一緒に、過去の文が先頭に行くように整列したい場合があります。

以下のコードを追加すると、作成日を基準に並べ替えができます。

add_filter('kboard_list_orderby','my_kboard_list_orderby', 10, 3);
function my_kboard_list_orderby($order, $board_id, $content_list){
if(in_array($board_id, array('1', '2'))){
$order = "`date` DESC";
}
return $order;
}

// 출처: Cosmosfarm

上記のコードは、KBoard掲示板プラグインに基本的に適用されており、配置を変更する上記のコードで DESC 部分を ASCに変更します。

スレッド番号表示は、 WordPress 管理者ページ - > KBoard - >掲示板リスト - >掲示板を選択 - >基本設定ページでリストスレッド番号の表示設定で変更可能です。

スレッドのタイトルで並べ替えする

たとえばkboard_list_orderbyフィルタを使用してスレッドのタイトルを基準にアルファベット逆順(あいうえお逆順)に配列することができます。

WordPress KBoard掲示板整列を変更するもし新しいフィールドを一つ追加した後、そのフィールドの順序に基づいて並べ替えるには この記事の回答に記載されている方法に応じて、少し複雑な方法でKBoardコアファイルを変更する必要があります。

いずれの場合も、コアファイルを変更することは望ましくありません。 後でアップデートがされると、再度変更部分を確認して再度変更しなければします。 (時間が経過すると、任意の部分を変更したのか記憶し、再度変更することが容易ではない可能性があります。)

もし新しいフィールドを追加して、そのフィールドの値に基づいて並べ替える必要がある場合、 KBoard コアファイルを変更しない場合は、次のような方法も可能になります。 (個人的なアイデアが、実装するために別の問題はなさそうです。)

  1. タイトルを新しい値(論文番号など)を追加する目的で使用します。 editor.phpファイルでラベルを「タイトル」から「論文番号」(または目的のタイトル)に変更すると、ユーザーは新しいフィールドの値として追加されますが、実際にはtitleフィールドに追加されます。
  2. 新しいフィールドを追加し、タイトルは「タイトル」として指定します。
  3. list.phpとdocument.phpで新たに追加されたフィールドの値がタイトル部分に来るように適切に修正してtitleフィールド($ content-> title)で受信した新しい値(例えば、論文番号)も、適切な場所に表示されるよう、ソースファイルを変更します。
  4. kboard_list_orderbyフィルタを使用してtitleでソートすると好きなように掲示板書き込みがソートされます。

できるだけ簡単に説明しようと努力した論理的に説明したのか分からないですね。 もしかしたら、この問題で悩んでいる場合、以下のコメントを残していただければ、より詳細に説明するために努力します。 これらのタスクを実行するには、Kboardでフィールドを自由に追加して、変更する必要があります。 そしてfilterにも理解している必要があります。 下の参考文が助けになるでしょう。

付録:掲示板番号を逆の順序で表示するには、

ちなみに掲示板番号が逆順に表示されるようにするには、 /kboard/class/KBContentList.class.php ファイルを変更する必要があります。

public function index(){
return $this->index--;
}

上記のコードを次のコードのように変更く​​ださい:

public function index(){
$this->index--;
return $this->total - $this->index;
}
// Source: 코스모스팜

参照

 


コメントを残す

コメント