0

パーマリンク付きの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」変数が設定されていません。ヒントはありますか?

4

1 に答える 1

2

まず、モジュールmod_rewriteがapacheで使用可能かどうかを確認してください<?php phpinfo(); ?>

.htaccess使用しているディレクトリにを作成します。

RewriteEngine on
RewriteRule ^product/([^/\.]+)/?$ product?id=$1 [L]

リファレンス/ガイドについては、http://www.workingwith.me.uk/articles/scripting/mod_rewriteをご覧ください。

于 2012-10-05T17:35:35.130 に答える