製品のカテゴリを含む完全なURLを常に表示する


8

Magentoウェブショップ(1.7.0.2)では、URL構造を最適化しようとしています。私たちはすでにいくつかのことを改善することに成功しましたが、1つは成功しませんでした。すべての製品に完全なURL(カテゴリを含む)を使用したいと考えています。例えば:

  • www.website.com/products/best-products/product
  • または:カテゴリページのwww.website.com/products/best-products

これは、カテゴリを参照してブレッドクラムを使用する場合は正常に機能しますが、検索する場合は機能しません。次に、常にwww.website.com/productをURLとして使用します。これは、製品が複数のカテゴリに属している可能性があり、検索結果で使用するカテゴリがわからないためです。

これを強制する方法はありますか?それをどうにかして「最初の」カテゴリを使用するために、あるいはあなたが選ぶことができるいくつかのデフォルトのカテゴリを使用するためにさえ?私は開発者なので、コードに変更を加えてもかまいませんが、別の方法やより信頼できる方法がない場合に限ります。ヒントやトリックは大歓迎です、事前に感謝します!

回答:


4

あなたが望むものを達成することはできません-Afaik。

問題は、magentoが「多くのカテゴリの製品」で計画されていることです。ここでの問題は、magentoはどのカテゴリーも優先せず、代わりにカテゴリーをまったく表示しないことです。

カテゴリが使用され、カテゴリをクリックすると、これがカテゴリの書き換えが使用される唯一の場所(afaik)です。

しかし、書き換えシステムを少しハックして、すべてのカテゴリがないものではなく、必ずカテゴリの書き換えをロードすることで、希望どおりの結果が得られると思います。

次の問題は、あなたが確認しなければならないことであり、Googleが同じ正規URLを取得するたびに取得されるか、重複したコンテンツで問題が発生することです...

そして、私が念頭に置いている最後の考え:よくわかりませんが、これがSEOの観点からは良い考えかどうかはわかりません。私はソの専門家ではありませんが、誰かが私に言った、URLが短いほど良い...


1

製品URLの出力元:
Mage_Catalog_Model_Product::getProductUrl
このメソッドは、URLを使用してカテゴリを含める必要があるかどうかをチェックしていますMage::registry('current_category')

しかし、コレクションは通常、独自のクエリ(チェック方法でURL書き換えをロードするMage_Catalog_Model_Resource_Product_Collection::addUrlRewrite($categoryId = '')
そしてMage_Catalog_Model_Product::getProductUrl$の製品データからその「request_path」を使用しています。

したがって、考えられるトリックは次のようなものです。

        // if we are in search results
    if( ! Mage::registry('current_category')){
        $myDesiredCategoryId = current($product->getCategoryIds()); // you could just use the first category registered with this product or define some other strategy
        $canonicalCategory = Mage::getModel('catalog/category')->load($myDesiredCategoryId);
        Mage::register('current_category', $canonicalCategory);
        $product->setRequestPath(null);
        $productUrlWithCategory = $product->getUrlModel()->getUrl($product);
        Mage::unregister('current_category');
    }

これは最速の方法ではありません(コレクション内のすべての製品がURLの書き換えを個別のクエリでロードする必要があります)が、簡単な解決策を探している場合はおそらく最も簡単な方法です。



-1

私はあなたが必要とするものをシステム設定によって達成することができるとかなり確信していますUse Categories Path For Product URLs。これはにありますSystem->Configuration->Catalog->Catalog->Search Engin Optimization。これを設定した後、インデックスを再作成する必要があると思います。

お役に立てれば。


いいえ、この設定は現在のカテゴリが設定されている場合にのみ機能します(したがって、カテゴリページから製品を開いている場合)。
Simon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.