私は現在リンクを取得しようとしています
example.com/subdir/StackExchange/
例えばとのリンクとして機能する。追加のウェブサイトタグ:
example.com/subdir?website=StackExchange
私は.htaccessでRewriteRuleを以下のように設定しました。
RewriteRule ^subdir/(.*)/$ subdir.php?website=$1 [L]
数字(example.com/subdir/123/
)を使用すると、echo $_GET["website"]
は "123"をエコーします。私がアルファベット(example.com/subdir/abc/
)を使うとすぐにうまくいきません。
これをどうやって変更できますか?これはWordPressの問題ですか? WordPress設定ダッシュボードの固定リンクオプションを "投稿名"に設定しました。他の方法も試しましたが、何も変わっていません。
.htaccess
はそのままにしておきます。これにはWordPress 書き換えAPI を使用できます。
add_action( 'init', function(){
return add_rewrite_rule(
'subdir/([^/]+)/?$', // ([^/]+) takes alphanumeric, while ([0-9]+) accepts digits
'index.php?pagename=subdir&website=$matches[1]',
'top'
);
});
add_filter('query_vars', function($v){ return array_merge(array('website'),$v); });
この例では、まずsubdir
が有効なページスラッグであることを確認してください。そのコードを子テーマの関数ファイルまたはプラグインに保存した後、$_GET
globalを使用する代わりに get_query_var('website')
を使用してwebsite
プロパティを取得できます。
それが役立つことを願っています。