ホーム > 投稿記事 > WordPressテーマ「biz-vektor」のRSSカスタマイズではまった話

WordPressテーマ「biz-vektor」のRSSカスタマイズではまった話

投稿日 : 2017年09月27日   更新日 : 2019年10月04日
カテゴリー : WordPress
WordPressテーマ「biz-vektor」のRSSカスタマイズではまった話の画像

こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
私はPHPエンジニアとして6年~の経験があります。WordPressは2年~の経験があります。
ここでは主に過去に納品した案件や自サイト運営(エンジニア婦人ノート)で遭遇したことについて書いています。

通常、WordPressサイトの制作で既存テーマをベースに作成することが殆どです。

しかし今回は「biz-vektor」というテーマのものを流用することになりました。

巷では簡単にできるテーマとして有名なんですね。

BizVektorについてはこちらです→BizVektor

※2019年10月現在、BizVektorはアップデートを停止しています。

BizVektorでは、原則子テーマを作ってカスタマイズします。

「特定カテゴリを除外してお知らせを表示したい」のですが、困ったのが「特定のカテゴリを除外したお知らせRSSのURL」でした。

通常のWordpressのRSS取得URL

通常はこんな感じでできます。

  • http://どせいさん/feed/?post_type=post&category_name=eventinfo

カテゴリを絞り込むとこんな感じです。

  • http://どせいさん/feed/?post_type=post&category_name=絞り込みたいカテゴリ名

カスタム投稿はこんな感じです。

  • http://どせいさん/feed/?post_type=カスタム投稿post_type名(eventとか)

カスタム投稿でカテゴリを絞り込むとこんな感じになります。

  • http://どせいさん/feed/?post_type=カスタム投稿post_type名(eventとか)&category_name=絞り込みたいカテゴリ名

ちなみにカテゴリを除外したいときはこうします。

  • http://どせいさん/feed/?post_type=カスタム投稿post_type名(eventとか)&cat=-除外したいカテゴリID

除外したいカテゴリIDの前に「-」をつけるのがポイントです。本来はそれで行けます。

でも…このテーマを使っているから故なのか、細かい原因は追究しませんが、このやり方だとダメだったんです。

ちなみにこれはできます。

  • http://どせいさん/feed/?post_type=info-cat

カテゴリ絞り込みはできません。

  • http://どせいさん/feed/?post_type=info-cat&category=カテゴリ名

通常のやり方でできなかった原因

ずばり、タクソノミー名が「category」ではないから
お知らせのカスタムタクソノミーは名前が「info-cat」なんですね。
だからこうすれば絞り込みができます。

  • http://どせいさん/feed/?post_type=info-cat&info-cat=カテゴリ名

しかし今回のやりたかったことは「特定のカテゴリを除外して表示させたい」。

でもこれだと「指定したカテゴリを取ってくる」ことになる。

カテゴリ数が少なければそれでもいいけど、これをべた書きにするとなると…メンテナンス性が悪い。

カテゴリが多いと都度対応で面倒です。

目的のRSS取得プログラム

slug == '外したいカテゴリ名') continue;
        // 欲しいカテゴリ名のみ配列に追加
	$rssCatAry[] = $info->slug;
}
// URL出力のときにカンマで繋げる
// こんな感じになる
// http://どせいさん/feed/?post_type=info&info-cat= ?>

ちなみにトップの表示からも特定カテゴリの情報を表示したくなかったからこんな感じにしてみました。

通常はget_post使いますが、ここでは元のソースがWP_Query使ってたからそのままになるようにしました。元と合わせておくことも時と場合によっては必要です。

 $infoTopCount, // 表示件数
		'orderby'          => 'post_modified', // 更新日
		'order'            => 'DESC', // 降順
		'post_type'        => 'info', // お知らせのポストタイプを指定
		'post_status'      => 'publish', // 公開中のもの
		'tax_query' => array( // カテゴリ絞り込み指定
				array(
						'taxonomy' => 'info-cat', // bizvektorのお知らせカテゴリーを対象
						'field' => 'slug',
						'terms' => '除外するカテゴリのスラッグ名',
						'operator' => 'NOT IN', // 特定カテゴリを含まない
				),
		),
);
// データ取得
$loop = new WP_Query($args);
?>

とりあえず希望通りに表示ができるようになりました。

まとめ

  • BizVektorというテーマを使っているとき、RSSを希望通りに表示させるためにはテクニックがいる

開発者側の考え方によって、実現したいことが簡単にはできないこともあります。

そういったときに、専門的立場から解析して実現するのも、私の仕事です。

楽しい物造りを

NaoLight

自分のブログやサイトを、楽しく作ってもらえたら。

プログラムを使って望み通りに、拡張しやすく、自分の思うように。

できたときに、すごく楽しい!と思ったら。

控えめに言って、「最高です」。

NaoLight -NAOT-(なおらいと、なおと、と呼んでください)はそんな思いをカタチにする、WordPressのテーマです。

ご購入はこちらからお願いします(BOOTHへ移動します)。

Nao Light-NAOT-公式サイト



この記事にコメントする

入力エリアすべてが必須項目です。承認制のため、表示までに時間がかかる場合があります。

CAPTCHA


内容を確認の上、コメントをお願いします。