[ 解決済 ] VK 最近の投稿 ウィジェットで、特定の記事を除外したい
VWSとは › フォーラム › All in One Expansion Unit › [ 解決済 ] VK 最近の投稿 ウィジェットで、特定の記事を除外したい
[ 解決済 ] VK 最近の投稿 ウィジェットで、特定の記事を除外したい
-
投稿者投稿
-
2023年6月11日 4:17 PM #76516
■ WordPress のバージョン
6.2.2■ テーマ・プラグインは全て最新版で確認してください。
確認しました。■ テーマの種類
Lightning Pro■ テーマのバージョン
8.17.10■ スキンの種類
Origin II■ プラグインの種類・バージョン
VK All in One Expansion Unit 9.89.1.0■ 期待する動作
特定の記事を「VK 最近の投稿」ウィジェットに表示させないようにしたいです。
ただしその記事は、アーカイブページや他のウィジェットでは表示させたいです。たとえば、特定のカテゴリーに属していたら除外する のようなコードが書ければ良いかなと思っています。
■ 自分で試した事
下記のようなことをしたいので、表示するカテゴリーを列挙する方法は上手く行きませんでした。・「ニュース」カテゴリーのみに属している記事は表示
・「ニュース」「最近の投稿に非表示」のカテゴリーに属している記事は非表示■ 症状が発生するブラウザ
すべて■ 実際の症状
ある事情で、メインの記事と、その記事にリダイレクトしているだけの記事(別カテゴリー)を投稿する必要があります。
その記事を別カテゴリーのアーカイブページに表示したいのですが、複数カテゴリーに属させるとメインカテゴリーが変わってしまいます。最近の投稿には両方の記事が表示されてしまいます。
(リダイレクトしているだけの記事は noindex にしています)該当URL : https://*********※該当URLはフォーラムライセンスが有効のユーザーにのみ表示されます
2023年6月11日 4:59 PM #76519あまりスマートなやり方じゃないですが…
表示したくない投稿の URL の最後に
-redirect
と追加して、以下の CSS を書けば、とりあえず非表示にできます。.widget .veu_postList .postList_item:has(a[href$="-redirect/"]) { display: none; }
該当 URL のサイトではウィジェットの表示形式を サムネイル/タイトル/日付 にしていますが、表示形式を 日付/カテゴリー/タイトル にすれば、投稿の URL をいじらなくても以下の CSS で特定のカテゴリーの投稿を非表示にできます。
.widget .veu_postList ul li:has(a[href$="/xxxxx/"]) { display: none; }
xxxxx は非表示にしたいカテゴリーのスラッグです。
私は力不足でできませんが、フックを書いて HTML を出力しないやり方があれば、それが理想的ですね。
2023年6月11日 6:08 PM #76520たぶん、該当記事に
* 日本SF大賞 japan-sf-grand-prize
* ニュース newsの両方のカテゴリーを設定したときに、日本SF大賞 をメインカテゴリーにできればいいんですよね?
複数カテゴリーに属させるとメインカテゴリーが変わってしまいます。
これって、メインカテゴリーが ニュース になってしまうため、その対策として別々の投稿を書いてリダイレクトを使っているのだと理解しました。
だとすると、プラグイン Category Order and Taxonomy Terms Order を使ってカテゴリーの並び順(どちらをメインカテゴリーにするかの優先順位)をコントロールすればこの件が解決するのではないかという気がしてきました。
2023年6月11日 7:38 PM #76521> 対馬さん
様々なアイデアのご提示ありがとうございます。
どれも面白いアイデアですね。まず、URLにキーワードを追加するというのは、私が運用するのであればこれで良いと思います。
ただ、担当者にこの運用を求めるのは難しいのです。
マニュアル不要でウェブに詳しくない方でも運用できるようにしたいのですよね。次に、表示形式を変更する方法ですが、表示形式は変えられないのです。
惜しいー。あと、おっしゃる通りメインカテゴリーを変更する方法があれば、それでも良いと考えています。
YoastSEO だと投稿ごとにメインカテゴリーが変えられるらしいのですが、そのためだけにSEOプラグインを入れるというのはどうなのかな? と思っています。
Category Order and Taxonomy Terms Order は、ニュースカテゴリーを常に後に持ってくるという運用になりますね。
カテゴリーは今後も増えていくので、これもちょっと厳しいです。いろいろアイデア頂いてるのに申し訳ないです・・・
フックでクエリーを操作する方法が理想ですねー2023年6月11日 8:09 PM #765242023年6月11日 9:02 PM #76527これ、どうでしょう?
1. VK 最近の投稿 ウィジェット ではなく、VK 投稿リスト ブロック を使う。
2. 表示タイプを メディア にして、すべての画面幅で 1カラム にする。
3. 表示要素は以下の3つ。
* 画像
* 日付
* 分類 (全項目)4. 以下の CSS を書く。
/* ニュースを非表示 */ .widget .vk_postList .vk_post:has(a[href$="/news/"]) { display: none; } /* 分類 (全項目) を非表示 */ .widget .vk_postList .vk_post .vk_post_taxonomies { display: none; }
これ、わりとよさげじゃないですか…。
2023年6月11日 10:10 PM #76529なるほど、VK 投稿リストブロックであれば、class にカテゴリー名がつくのでCSSで非表示にできるというわけですね。
classにcategory-カテゴリー名
が付加されるので、ウイジェットのカスタムCSSに下記を記述すればできました。/* カテゴリーにニュースを含む記事を非表示 */ selector .category-news { display:none }
一つ難点があるのですが、指定されている表示件数から非表示にした分少なくなるんですよね。
もし表示件数を3としていて、非表示にする投稿が最新から3件だったとすると、何も表示されなくなってしまいます。ちなみに「VK 最近の投稿」ブロックですと、プラグインのコードの改変になってしまいますが、tax_query のパラメーターに
'operator' => 'NOT IN',
を追加すると、指定したタクソノミーを除外することはできました。
(フックは無かったです)もう少し粘ってみたいと思います。
2023年6月12日 12:25 PM #76542Display Posts というプラグインを使ったら、以下のショートコードでできました。
[display-posts posts_per_page="3" taxonomy="category" tax_term="news" tax_operator="NOT IN" image_size="thumbnail"]
最終更新が1年前、ってのが気になりますね。他に同様なプラグインがあるかもしれません。
2023年6月14日 12:57 AM #76582> 対馬さん
いろいろ調べていただきありがとうございます。他のプラグインを使うとか、それこそ自分でウィジェットを作ってしまえば解決するんですが、デザインの統一やメンテナンス性を考えてベクトルさんのテーマやプラグインだけで解決したかったのです。
(カスタマイズやメンテナンスの費用が出てこないので)VK 投稿リストブロック + カスタムCSS で対応しようと思います。
ありがとうございました。2023年6月15日 12:23 AM #76600Just a moment …
https://github.com/vektor-inc/vk-all-in-one-expansion-unit/pull/974
-
この返信は1年、 2ヶ月前に
石川@Vektor,Inc.が編集しました。
2023年6月15日 11:17 AM #766119.90.0.1 でフック追加しました (・w・
2023年6月20日 12:27 AM #76714 -
この返信は1年、 2ヶ月前に
-
投稿者投稿
- このトピックに返信するにはログインが必要です。