/**
* company_detail URLでカテゴリ34(印刷会社詳細)以外の投稿へのアクセスを404にする
* 画像やリビジョンなど、誤ったURLがインデックスされる問題を防ぐ
* Added: 2026-01-22
*/
function block_invalid_company_detail_urls() {
if (is_admin()) return;
$request_uri = $_SERVER['REQUEST_URI'];
// /company_detail/ で始まるURLの場合のみ処理
if (strpos($request_uri, '/company_detail/') !== false) {
// 数字のIDを抽出
if (preg_match('/\/company_detail\/(\d+)\/?/', $request_uri, $matches)) {
$post_id = intval($matches[1]);
// そのIDが「印刷会社詳細」カテゴリ(ID:34)に属しているか確認
if (!has_category(34, $post_id)) {
// 404を返す
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include(get_404_template());
exit;
}
}
}
}
add_action('template_redirect', 'block_invalid_company_detail_urls', 1);
/**
* より早い段階でcompany_detail URLの不正アクセスをブロック
* parse_requestはtemplate_redirectより前に実行される
* Added: 2026-01-22
*/
function block_invalid_company_detail_early($wp) {
if (is_admin()) return;
$request_uri = $_SERVER['REQUEST_URI'];
// /company_detail/数字/ のパターンをチェック
if (preg_match('/\/company_detail\/(\d+)\/?/', $request_uri, $matches)) {
$post_id = intval($matches[1]);
// 投稿が存在し、カテゴリ34に属しているか確認
$post = get_post($post_id);
if (!$post || $post->post_type !== 'post' || !has_category(34, $post_id)) {
status_header(404);
nocache_headers();
include(get_404_template());
exit;
}
}
}
add_action('parse_request', 'block_invalid_company_detail_early', 1);
/**
* 最も早い段階でcompany_detail URLの不正アクセスをブロック
* initはWordPressの初期化時に実行される
* Added: 2026-01-22
*/
function block_invalid_company_detail_init() {
if (is_admin()) return;
$request_uri = $_SERVER['REQUEST_URI'];
// /company_detail/数字/ のパターンをチェック
if (preg_match('/\/company_detail\/(\d+)\/?/', $request_uri, $matches)) {
$post_id = intval($matches[1]);
// 投稿が存在し、post_typeがpostで、カテゴリ34に属しているか確認
global $wpdb;
// post_typeを確認
$post_type = $wpdb->get_var($wpdb->prepare(
"SELECT post_type FROM {$wpdb->posts} WHERE ID = %d",
$post_id
));
if ($post_type !== 'post') {
status_header(404);
nocache_headers();
echo '
404 Not Found404 Not Found
';
exit;
}
// カテゴリ34に属しているか確認
$in_category = $wpdb->get_var($wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->term_relationships} tr
INNER JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tr.object_id = %d AND tt.term_id = 34",
$post_id
));
if (!$in_category) {
status_header(404);
nocache_headers();
echo '404 Not Found404 Not Found
';
exit;
}
}
}
add_action('init', 'block_invalid_company_detail_init', 1);
/**
* company_detail URLでのcanonicalリダイレクトを無効化
* Added: 2026-01-22
*/
function disable_canonical_redirect_for_company_detail($redirect_url, $requested_url) {
if (strpos($requested_url, '/company_detail/') !== false) {
if (preg_match('/\/company_detail\/(\d+)\/?/', $requested_url, $matches)) {
$post_id = intval($matches[1]);
global $wpdb;
$post_type = $wpdb->get_var($wpdb->prepare(
"SELECT post_type FROM {$wpdb->posts} WHERE ID = %d",
$post_id
));
if ($post_type !== 'post') {
return false; // リダイレクトを無効化
}
}
}
return $redirect_url;
}
add_filter('redirect_canonical', 'disable_canonical_redirect_for_company_detail', 1, 2);
/**
* attachment post typeへのredirect_canonicalを完全に無効化
* Added: 2026-01-22
*/
add_filter('redirect_canonical', function($redirect_url, $requested_url) {
// デバッグ用ログ
error_log("redirect_canonical called: requested=$requested_url, redirect=$redirect_url");
if (strpos($requested_url, '/company_detail/') !== false) {
error_log("Blocking redirect for company_detail URL");
return false;
}
return $redirect_url;
}, 0, 2);
/**
* attachment post typeへのredirect_canonicalを完全に無効化
* Added: 2026-01-22
*/
add_filter('redirect_canonical', function($redirect_url, $requested_url) {
// デバッグ用ログ
error_log("redirect_canonical called: requested=$requested_url, redirect=$redirect_url");
if (strpos($requested_url, '/company_detail/') !== false) {
error_log("Blocking redirect for company_detail URL");
return false;
}
return $redirect_url;
}, 0, 2);
自宅待機中に!オリジナルトランプを印刷通販7社で作って遊ぼう! | 印刷通販徹底比較
ひとことコメント
小説も書くライター。印刷物制作と特殊紙が大好きです。
| 名前 |
らん 藍坂 |
| 所属 |
登録情報がありません。 |
| 職種 |
登録情報がありません。 |
| 所在地 |
登録情報がありません。 |
| TEL |
登録情報がありません。 |
| FAX |
登録情報がありません。 |
| URL |
登録情報がありません。 |
ポートフォリオ
プロフィール情報
小説も書くライター。印刷物制作と特殊紙が大好きです。
利用経験のある通販会社
登録情報がありません。
デザイナーランキング実施中!! このデザイナーを応援する方は「いいね!」を押してください
印刷会社PR
印刷会社の皆様へ
印刷通販サイト比較