2016-09-17 16 views
0

私はWoocommerceストアでリストビューを強制表示しようとしていますが、動作させられないようです。WoocommerceカテゴリURLにクエリパラメータを追加する

テーマがリストビューをサポートしていると、あなたはとてもカテゴリURLが「?product_view=list」を追加することによって、それを強制することができます代わりにデフォルトの1の

http://subliminalscience.com/product-category/icbch-hypnosis-certification/?product_view=list 

http://subliminalscience.com/product-category/icbch-hypnosis-certification/ 

私はこれを追加しました私のhtaccessにルールを書き換えてください。しかし、それはdoesntです:

RewriteRule ^product-category(.*)$ http://subliminalscience.com/product-category$1?product_view=list 

Wordpress ignoこの書き換えルールを再開します。何か案は?

+0

**書き換えルールを**ルールの上の**ルールの上に置きますが、 'RewriteEngine on'の下に置きます。 –

+0

@PanamaJackが働いてくれてありがとう! –

答えて

0

私はこの回答が唯一のものであることに驚いています。

この種の動作を強制するために.htaccessを変更すると、実際には不要になります。特にこの問題を解決しようとしている他のユーザー、特にnginxサーバー上のユーザーや.htaccessアクセスなしの共有ホスティングでは役に立ちません。

これを修正するには、アクションを使用してPHPで修正するようにしてください。

あなたの質問を見ると、URLの?key1=value1&key2=value2部分であるGETデータがURLバーでチェックされていることがわかります。 GET is an HTTP method that you can read about here if you want to learn more.

あなたが実際にPHPにGETデータを設定することができ、あなたは安全にあなたのfunctions.phpファイルにこれを置くことができます。

あなたは、単に現在のページをチェックし、それが製品カテゴリページの場合はGETデータを設定する関数を作成することになるでしょう。私は実際にこれをテストすることはできませんが、私はそれはと思う

<?php 
 
//Force all category pages to list view. 
 
add_action('woocommerce_before_main_content','force_category_list_view', 5); 
 
function force_category_list_view(){ 
 
    if(is_product_category()){ 
 
    $_GET['product_view'] = list; 
 
    } 
 
}; 
 
?>

:あなたのfunctions.phpの下部にある

、あなたはこのような何かを追加したいと思います作業。本質的に、woocommerceテンプレートarchive-product.phpでは、最初に実行されるアクションは 'woocommerce_before_main_content'です。私たちがやっていることは、ページを実際に製品カテゴリにしているかどうかを確認する機能を呼び出すことです。そうであれば、GET変数をリストとして設定します。これは、URLがページに既に指示していることを正確に示しています。

主にこれは.htaccessを変更するよりも良い方法ですが、誰かがGETデータを上書きすることもできます。?product_view=list&product_view=xyzこれはこのインスタンスでは問題になるとは思いませんが、他のインスタンスが存在する可能性があります。

関連する問題