パーマリンク付きのWordpressブログがあります。製品の表を表示する静的ページを作成しました(www.abc.xx/database/)。ユーザーが製品の1つをクリックすると、「product」という名前の新しい静的ページが開き、データベースからIDで製品に関する情報を取得して表示します。URLはwww.abc.xx/database/product?id=1です。
しかし、www.abc.xx / database / product?id = 1?の代わりにwww.abc.xx/database/product/my-productのようなURLが欲しいのですが。誰かがそれがどのように機能するか説明できますか?
アップデート:
私はブログに投稿されたいくつかの解決策で少し遊んだ。次のスニペットをfunctions.phpファイルに追加しました。
add_filter('rewrite_rules_array', 'add_rewrite_rules');
function add_rewrite_rules($aRules) {
$aNewRules = array('database/product/([^/]*)/?$' => $wp_rewrite->index .'index.php?pagename=product&product-name=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('query_vars', 'add_query_vars');
function add_query_vars($aVars) {
$aVars[] = 'product-name';
return $aVars;
}
商品ページサイトに追加しました
if(isset($wp_query->query_vars['product-name'])) {
echo urldecode($wp_query->query_vars['product-name']);
}
ここで、www.abc.xx / database / product / my-productに電話すると、製品ページは開きますが、「my-product」は出荷されません。「product-name」変数が設定されていません。ヒントはありますか?