Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

新着表示ショートコードのsticky=...
 
共有:
通知
すべてクリア

新着表示ショートコードのsticky=1について

14 投稿
6 ユーザー
16 Reactions
1,220 表示
(@dekazo)
Eminent Member Registered
結合: 4年前
投稿: 28
Topic starter  

新着記事を表示するのに、以下のショートコードを設定しました。
タグで記事の絞り込みをしており、かつstickyで固定表示させています。

1 [new_list sticky=1 tags="1" post_type="post"]
2 [new_list sticky=1 tags="2" post_type="post"]
3 [new_list sticky=1 tags="3" post_type="post"]

タグで絞り込みして、
固定表示されているものが上位に表示される、
というイメージでいたのですが、
実際は、固定表示されているものはsticky=1の指定があるもの全てに表示されてしまいます。
これを希望通りにする方法はあるでしょうか?
よろしくお願いします。


   
引用
(@dekazo)
Eminent Member Registered
結合: 4年前
投稿: 28
Topic starter  

すみません、上で欠けている部分です。

1 [new_list sticky=1 tags="1" post_type="post"]
2 [new_list sticky=1 tags="2" post_type="post"]
3 [new_list sticky=1 tags="3" post_type="post"]


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
 
投稿者:: @dekazo

sticky=1

は表示です。「sticky=0」が表示しない設定です。

実際のURLがないのであまりよく意図がわかりませんのでなんとも。アプローチ方法は異なりますが、

ダッシュボード>外観>ウィジェットエリアの「新着記事」を利用する手もありそうです。


   
dekazo reacted
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7960
 

少しすれ違っているかもしれません。

おそらく。。。

  • 固定表示しているものは先頭に表示したい
  • tagでも絞り込みたい

 

上記2つを同時に両立したいんだと思います。

ところが。。。

  • 固定表示しているものは、tagで絞り込まずに、全て表示される

 

という感じに受け取りました。
(実際の確認はしておりませんが。)

 

これは、仕様の問題かな。。。とは思います。
(固定表示とtagの両方の指定がある場合は、どういう仕様なのか。)


   
わいひら and dekazo reacted
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7960
 

dekazoさんが仰っているのは、こういうことかな。。。というのを画像にしてみました。

「tag」や「先頭に固定」の条件は、画像に書いた通りです。
(青字・赤字部分。)

ショートコードは、以下のように設定しました。
[new_list sticky=1 tags="2" post_type="post"]

 
おそらく「青字のものだけを抽出したい」ということかと思いました。
 
現状は、「先頭に固定」はtagによらず抽出する仕様のようです。
 
どちらを優先するか。。。というのは、人それぞれなところもありと思いますし、難しいなぁ…と。
 
 
とりあえず、必要ないものはCSSで消してしまうという対応ではどうでしょうか。。。と思います。
 
どこにショートコードを書くかで、セレクタは変わってしまうとは思いますが。
(環境情報のご提示がありませんから、実際の状態が分かりません。)
 
例えば、消したいものが2番目であれば、以下のような感じで消すことはできるように思います。
(他にもやり方はあると思います。)
.new-entry-cards a:nth-child(2) {
    display: none;
}
 
上記の添付画像であれば、「マイクロバルーン」の記事が非表示になります。

   
わいひら and dekazo reacted
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7960
 

上記と違うという事であれば、もう少し詳しくご説明いただくなり、環境情報のご提示をいただくなりが必要かと思います。


   
dekazo reacted
返信引用
(@dekazo)
Eminent Member Registered
結合: 4年前
投稿: 28
Topic starter  

投票2020

mk2 様

ご回答ありがとうございます。

すみません、説明不足で質問内容が不明瞭でした。申し訳ありません。

質問の趣旨はmk2様が詳細に解読(すみません)して頂いた通りです。

仕様なら仕方ないです。

頻繁に記事の追加があるので、スマートで手間のかからない方法を探していますが、

当面はご提示いただいたCSSで対処できそうです。

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


   
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7960
 

dekazoさん

「先頭に固定」 の記事が、そんなに頻繁に増えたり変わっていくものなのか。。。とは思いますけど。

どうしてもお好みに、ということであれば、以下の辺りをオーバーライドするのかなぁと思います。

https://github.com/yhira/cocoon/blob/5b38f5317e7824d53f13939bca6dc01e4fceda46/lib/html-forms.php#L1049

もしくは、以下辺りか。

https://github.com/yhira/cocoon/blob/5b38f5317e7824d53f13939bca6dc01e4fceda46/lib/utils.php#L2713

スマホから調べていますので、怪しいかもしれませんけど。


   
dekazo and わいひら reacted
返信引用
リフィトリー
(@leafytree)
Illustrious Member Moderator
結合: 6年前
投稿: 6845
 

前略、dekazoさん

目的と合致するかどうかはわかりませんが、「ナビカード」なら、意図した記事を並べられるみたいです。

 

意図した記事一覧を作成できる「ナビカード」ショートコードの使い方

https://wp-cocoon.com/navi-card-shortcode/


   
dekazo and わいひら reacted
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1089
 

不具合か仕様か迷いますが、タグ(やカテゴリー)で絞り込みをしてるのにそれに該当しない記事が表示されるのは直感に反しますね。

Cocoon自体が修正されるにしろ各自のカスタマイズで対応するにしろ、lib/html-forms.phpの1085行目辺りで、pos__not_inに加える前にget_sticky_post_ids()で取得できたIDの記事に付いてるカテゴリーやタグを確認する必要がありそうです。


   
返信引用
(@dekazo)
Eminent Member Registered
結合: 4年前
投稿: 28
Topic starter  

mk2 様

何度もすみません。よくコード見て希望の動作ができるかやってみます。本当にありがとうございます。

リフィトリー 様

ありがとうございます。ナビカードですね。1ページ内に多数のカテゴリ別エントリーエリアを設けるレイアウトなので、意図的に仕分ける方法が多いのは助かります。こちらも検討してみます。

はる 様

ありがとうございます。ご指示頂いた編集箇所と改変アプローチは大変参考になります。mk2 様にもご指示頂きましたが、html-forms.phpをよく見てみます。

 

皆様、貴重な時間頂き、本当にありがとうございます。


   
mk2 reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17229
 

取り立てて、タグ記事を出力している時でも、固定記事も全部表示させるような処理は書いていないようには見えます。
なので、WordPressデフォルトでこういう動作なのかも。
実装するには、get_sticky_post_ids()で取得したIDの中で、タグ(カテゴリーのも必要かも)に含まれないものをpost__not_inで除外するしかないのだろうか。
それとも他に何か良い方法があるんだろうか。


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1089
 

こちら参考になりそうですか?
実際の動作確認はしていませんが、WordPressのデフォルト機能で実装する分、期待通りの動作をしそうな予感…?

注意: 先頭固定表示の投稿がある場合、欲しいかどうかに関係なくその投稿も取得されます(先頭に!)。この動作を避けるには ignore_sticky_posts を使ってください。

  • ignore_sticky_posts (真偽値) - 先頭固定表示の投稿を無視します(バージョン 3.1 以降で使えます。非推奨になった caller_get_posts パラメータを置き換えます)。デフォルトは false で、無視しません(先頭に含めます)。true にすると無視します。なお、先頭固定表示の投稿を無視(除外)しても先頭に出てこないだけで、投稿リストにそれらの投稿が本来並ぶべき位置には出てきます。

引用元:関数リファレンス/WP Query


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17229
 

ignore_sticky_postsなんてオプションがあるんですね!知りませんでした。
ただ、今回問題があるのは 'ignore_sticky_posts' => false,のときなので、デフォルトの動作は変わらないかもしれません。
ignore_sticky_postsを使った方が明確なので、変更しておきました。
https://github.com/yhira/cocoon/commit/eabddbadfe20a071b7e5062060fd272af31d20e6


   
はる reacted
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました