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

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

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

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

Q&A

1回答

1975閲覧

 wordpressの記事詳細ページの前後記事へのリンクを投稿順ではなくイベント開催日順にしたい。

raidomaru

総合スコア106

WordPress

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

0グッド

0クリップ

投稿2016/11/22 13:26

###前提・実現したいこと
event organizerというプラグインを利用しています。
https://ja.wordpress.org/plugins/event-organiser/

イベント内に子カテゴリとしてイベントと休日を作成してます。

###発生している問題・エラーメッセージ

一覧(archive-event.php)での表示順はイベント開始日順にできました。

詳細ページで(single-event.php)の前後のリンクは親カテゴリのイベントにして、休日を除外するとこまではできたのですが、
リンクの順序をイベント順にすることができません。

色々と調べましたが、該当する情報が見つけられませんでした。
アドバイスなどいただけないでしょうか。

###該当のソースコード

php

1//前のイベントへ 2 <?php previous_post_link('%link', '<img src="/wp-content/themes/example/shared/images/btn_37.png" id="column_prev">',false,'5'); ?> 3//イベント一覧へ 4<a href="<?php echo home_url('/'); ?>event/"><img src="<?php echo get_template_directory_uri(); ?>/shared/images/btn_39.png" id="column_all"></a> 5//次のイベントへ 6<?php next_post_link('%link', '<img src="/wp-content/themes/example/shared/images/btn_38.png" id="column_next">',false,'5'); ?>

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

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

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

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

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

guest

回答1

0

"SQL 文が書ける" 知識が必要ですが、3 個のフィルターフック(previous と next で各 3 個ずつ合計 6 個)を使えば実装可能です。以下に 3 つのフィルターフックを示します。
※ SQL 文は、JOIN、WHERE、ORDER BY と聞いて「あぁ」となればできると思います。

php

1/** 2 * Filters the JOIN clause in the SQL for an adjacent post query. 3 * 4 * The dynamic portion of the hook name, `$adjacent`, refers to the type 5 * of adjacency, 'next' or 'previous'. 6 * 7 * @since 2.5.0 8 * @since 4.4.0 Added the `$taxonomy` and `$post` parameters. 9 * 10 * @param string $join The JOIN clause in the SQL. 11 * @param bool $in_same_term Whether post should be in a same taxonomy term. 12 * @param array $excluded_terms Array of excluded term IDs. 13 * @param string $taxonomy Taxonomy. Used to identify the term used when `$in_same_term` is true. 14 * @param WP_Post $post WP_Post object. 15 */ 16$join = apply_filters( "get_{$adjacent}_post_join", $join, $in_same_term, $excluded_terms, $taxonomy, $post );

php

1/** 2 * Filters the WHERE clause in the SQL for an adjacent post query. 3 * 4 * The dynamic portion of the hook name, `$adjacent`, refers to the type 5 * of adjacency, 'next' or 'previous'. 6 * 7 * @since 2.5.0 8 * @since 4.4.0 Added the `$taxonomy` and `$post` parameters. 9 * 10 * @param string $where The `WHERE` clause in the SQL. 11 * @param bool $in_same_term Whether post should be in a same taxonomy term. 12 * @param array $excluded_terms Array of excluded term IDs. 13 * @param string $taxonomy Taxonomy. Used to identify the term used when `$in_same_term` is true. 14 * @param WP_Post $post WP_Post object. 15 */ 16$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare( "WHERE p.post_date $op %s AND p.post_type = %s $where", $current_post_date, $post->post_type ), $in_same_term, $excluded_terms, $taxonomy, $post );

php

1/** 2 * Filters the ORDER BY clause in the SQL for an adjacent post query. 3 * 4 * The dynamic portion of the hook name, `$adjacent`, refers to the type 5 * of adjacency, 'next' or 'previous'. 6 * 7 * @since 2.5.0 8 * @since 4.4.0 Added the `$post` parameter. 9 * 10 * @param string $order_by The `ORDER BY` clause in the SQL. 11 * @param WP_Post $post WP_Post object. 12 */ 13$sort = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1", $post );

投稿2016/11/23 02:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

raidomaru

2016/11/23 13:29

ありがとうございます。色々と調べながらやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問