質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

670閲覧

wordpressの記事のソートの関数を直したい

takuya-a

総合スコア2

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/08/08 02:55

前提・実現したいこと

記事を新着順に並べることはできましたが、
さらにはじめに投稿した記事を除いて並べるにはどうしたらいいでしょうか?
(現時点での記事のidは調べ方がわかりません)

イメージはこうです

現在 
5
4
3
2
1

やりたいこと
1←これを常に先頭に



下記関数で書いています。

function rew_date_topic_order( $args= array() ) {
$args['orderby']='date'; //日付順で並べることはわかりました
$args['order']='DESC'; //降順で並べることはわかりました
return $args;
}
add_filter('bbp_has_replies_query','rew_date_topic_order');

どう改修すればいいか、ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

回答が重複したので、書き換えておきます

投稿2019/08/12 01:10

編集2019/08/12 02:41
takuya-a

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

解決しました。
bbpressのフォーラムから記事を探し、コピペですがやりたいコメントのみ逆順ができましたので共有します。

// Reverse forum replies order from newer to older

function custom_bbp_has_replies() {
$args['order'] = 'DESC'; // ‘ASC’ (Ascending, Default), 'DESC' (Descending)

return $args;
}

add_filter('bbp_before_has_replies_parse_args', 'custom_bbp_has_replies' );

function custom_bbp_show_lead_topic( $show_lead ) {
$show_lead[] = 'true';
return $show_lead;
}

add_filter('bbp_show_lead_topic', 'custom_bbp_show_lead_topic' );

こちらをfunction.phpに貼りました。

参考記事:
https://bbpress.org/forums/topic/redirection-when-newest-replies-are-at-the-top/

よろしくお願いします!

投稿2019/08/12 01:08

takuya-a

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

メインクエリなのかサブクエリなのかわからないし、bbp_has_replies_queryを使ってるということは、bbPressを使っているって事だから、bbPressでどうなるのかわからないので一般的なサブクエリを使うとして書きます。

この1件だけを先頭に表示させてって時々見る質問なのですが、カスタムフィールドで「先頭に表示させる記事」と言うのを作り、先頭に表示させたい記事で1を保存した上で後はWP_Queryなり、get_postsなりの引数に

PHP

1$args['meta_key'] = '先頭に表示させる記事'; 2$args['orderby'] = array( 'meta_value_num' => 'DESC', 'date' => 'DESC' );

を突っ込めばいいんじゃないかなという気がします。

【追記】特定のページのメインクエリを書き換えるなら
※エラーが出ても大丈夫なように、FTPでアップロードしてくださいね!

PHP

1//functions.phpに追記 2add_filter( 'pre_get_posts', 'my_order' ); 3function my_order( $query ) { 4 5 //管理画面だったり、サブクエリの場合は無難にデフォルトのままで 6 if( is_admin() || !$query->is_main_query() ) return $query; 7 8 // 管理画面以外のメインクエリで、表示順を変えたい部分の条件を設定ここではis_archive 9 if($query->is_archive()) { 10 //クエリを書き換えて 11 $query->set( 'orderby' , array( 'meta_value_num' => 'DESC', 'date' => 'DESC' ) ); 12 $query->set( 'meta_key' , '先頭に表示させる記事' ); 13 } 14 15 return $query; 16 }

投稿2019/08/08 03:07

編集2019/08/08 03:22
yukikp

総合スコア797

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takuya-a

2019/08/08 03:55

ありがとうございます!やってみます 取り急ぎ
takuya-a

2019/08/08 04:50

bbpressにカスタムフィールドがなさそうです。すごくいい方法だと思いますので時間かけてカスタムフィールドつけれるようにググってみます。
takuya-a

2019/08/08 08:31

カスタムフィールドでは '先頭に表示させる記事' をつけることができました! function rew_date_topic_order( $args= array() ) { $args['orderby']='date';  $args['order']='DESC';  return $args; } add_filter('bbp_has_replies_query','rew_date_topic_order'); に $args['meta_key'] = '先頭に表示させる記事'; $args['orderby'] = array( 'meta_value_num' => 'DESC', 'date' => 'DESC' ); を入れ込むことはできますか?またその場合はどう書けばいいでしょうか?度々すみません、よろしくお願いします。
yukikp

2019/08/08 10:18

表示に使用するテンプレートファイル名とか、中のコード、特にif( have_posts())あたりの奴を見せてください
takuya-a

2019/08/08 11:55

ありがとうございます。 https://cree.fun/2755/ を見ながら行っていて、子テーマ直下のfunction.phpに書いています。(もちろんファイルはスペアを取っています。) 作成中のサイト https://gameuser-link-platform.work/forums/topic/marime2-2  になります。 今は関数をコメントアウトしましたが、トピックのフレンド募集が一番下になって、「あ」、「テスト」になります。記事と書いてしまって誤解があるかもれないですが、コメントを逆にしたいです。ややこしくてすいません。postは関係なさそうです。
yukikp

2019/08/08 13:02

コメントだと全く違う話になります。。。>< コメントにカスタムフィールド付けられましたっけ。 bbPressでコメントをどう扱ってるのかもわからない。。ぐぅ。
takuya-a

2019/08/08 13:29

プラグインAdvanced Custom Fields(アドバンスドカスタムフィールド)でbbpressにも属性付けれるみたいです。教えていただいた言葉入れてみました。https://sukusho.nu/7rcT/ そうですよね......このbbpress情報が少なくて......もし時間的に余裕ありました時に対応いただけますと嬉しいです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問