Discordコミュニティを作りました! 参加する

フォーラム

トピックを立てる前にチェック
  1. フォーラムガイドライン」に必ず目を通してください。
  2. バージョンアップデート後に表示がおかしくなった場合は、
    「SWELL設定」>「リセット」からキャッシュクリアを先にお試しください。
  3. フォーラム内検索で過去に同じようなトピックがないか検索してみてください。
フック ”swell_related_...
 
通知
すべてクリア

フック ”swell_related_post_args”の使い方について

4 投稿
2 ユーザー
4 Likes
1,519 表示
Rockn Crawlers
(@rockn-crawlers)
投稿: 21
メンバー
Topic starter
 

ローカル環境でサイト構築をしているので、URLがダミーになっております。


SWELLのオリジナルフック”swell_related_post_args”で、
複数のカスタム投稿を指定し、
それぞれのカスタム投稿に対応した関連記事を表示させる方法

例>
仮にカスタム投稿タイプを3つ作ったとします。
カスタム投稿タイプ "honda"
カスタム投稿タイプ "toyota"
カスタム投稿タイプ "mazda"

かんたさんのSWELL MANIAの説明と、過去のフォーラム記事を参考に

function example01 ($args){
if (is_singular( 'honda' )){
$args['post_type'] ='honda';
return $args;
}
}
add_filter( 'swell_related_post_args','example01' );

をfunction.phpに記載すると、
カスタム投稿タイプ"honda"の関連記事は、"honda"内から表示されるようになりました。

この後、

カスタム投稿タイプ"toyota"の記事ページ下部の関連記事を"toyota"内から
カスタム投稿タイプ"mazda"の記事ページ下部の関連記事を"mazda"内から

としたいのですが、僕の知識では解決に至りませんでした。
同じコードを、関数とスラッグのみ変更し、上記コードの下に追加で2つ記載しても、一番下に記載したモノが反映されるだけで、他の関連記事は通常投稿の関連記事となりました。

解決策をご教授頂けると嬉しいです。

※コードに関する質問ですが、SWELLのフックの使用方法なので質問させて頂きました。

確認項目
利用規約に同意します*, ガイドラインを読み、内容を把握しています*, よくある質問を先にチェック済みです*, 過去に同じようなトピックがないか検索済みです*, WordPress更新後、SWELLは最新版にしましたか?, Googleなどでも検索してみました, プラグインを停止しても同じことが起こることを確認しました, デフォルトテーマ等、他のテーマでも同じことが起こることを確認しました, 自分で追加したコードに問題がないかチェック済みです, サポート範囲外だということを理解しているが助けが欲しい(有料サポートしてくれる方を探したい)
問題が確認できるページのURL
利用中のSWELL本体のバージョン
2.6.5
利用中のPHPバージョン
8.1
OS
MacOS
利用中のWordPressバージョン
6.0.1
利用中のサーバー会社
lolipop
ブラウザ
Chrome
利用中のプラグイン一覧

CPT UI

 
投稿済 : 14/07/2022 11:57 pm
了
 
(@loos_ryo)
投稿: 1264
メンバー Admin
 

PHPの書き方の話になってきますね。

3回同じような処理を書いても一番最後のものになりますので、一つの処理の中で条件分岐で今のカスタム投稿タイプに合わせてクエリをセットするようにしてみてください。

SWELL開発者です。

 
投稿済 : 15/07/2022 9:27 am
weiser reacted
Rockn Crawlers
(@rockn-crawlers)
投稿: 21
メンバー
Topic starter
 

了さま

ヒントを頂きありがとうございます。

一つの処理の中で条件分岐で今のカスタム投稿タイプに合わせてクエリをセット

現状なにも分からない状態ですが、調べて挑んでみます。

ありがとうございました。

 
投稿済 : 15/07/2022 3:37 pm
Rockn Crawlers
(@rockn-crawlers)
投稿: 21
メンバー
Topic starter
 

早速ですが解決しましたので下記に方法を記しておきます。

なお、プログラム未経験者がググって得た情報で実現しておりますので、
本質的に正解なのかは不明ですが、動作自体は思い通りのものになりました。


「複数のカスタム投稿タイプ毎に、記事下の関連記事を対応した関連記事に表示させる方法」

【前提】
Custom Post Type UIでカスタム投稿タイプを複数作成
● post_1
● post_2
● post_3
とします。

【目標】
「post_1の記事下関連記事にはpost_1から抽出」
「post_2の記事下関連記事にはpost_2から抽出」
「post_3の記事下関連記事にはpost_3から抽出」

設定をしないと、全て"通常投稿”の記事から関連記事が抽出されます

【方法】あくまでも素人調査によるものです。

SWELLテーマに用意されているフックを利用します。
フック:swell_related_post_maxnum

投稿タイプが1つだけの場合(post_1)だったとすると

function example01 ($args){
if (is_singular( 'post_1' )){
$args['post_type'] ='post_1';
return $args;
}
}
add_filter( 'swell_related_post_args','example01' );

でOKでした。

投稿タイプが複数ある場合は、了さんのヒントの通り条件分岐をする必要がありました。

以下コードです。

function example01 ($args){
if (is_singular( 'post_1' )){
$args['post_type'] ='post_1';
return $args;
}
elseif (is_singular( 'post_2' )){
$args['post_type'] ='post_2';
return $args;
}
elseif (is_singular( 'post_3' )){
$args['post_type'] ='post_3;
return $args;
}
}
add_filter( 'swell_related_post_args','example01' );

これで、各投稿タイプに関連した関連記事が記事下に表示されるようになりました。

"elseif"を使用

【最後に】
このカスタムを進めるために1週間ほど奮闘しておりましたが、
フォーラムのチカラを借りてヒントを頂き、すぐに解決できました。
ありがとうございました 😀 

カスタム投稿関連のカスタマイズは困ってる方が多いと思いましたので、ココに解決方法を記載させて頂きます。
また質問する事があると思いますが、その時はよろしくお願いいたします。

 
投稿済 : 15/07/2022 4:19 pm
共有: