親カテゴリなしでサブカテゴリにアクセスする


7

当店には以下のカテゴリーとサブカテゴリーがあります。

Category: http://yoursite.com/category.html

Sub-category: http://yoursite.com/category/sub-category.html

以下のURLを使用してサブカテゴリリストページにアクセスできますか

Sub-category: http://yoursite.com/sub-category.html

ケース1:メインカテゴリIDが無効になっている場合でも、サブカテゴリリストページにアクセスする

ケース2:URLのメインカテゴリを使用せずにサブカテゴリリストページにアクセスする

また、私の製品がいずれかに割り当てられsub-category、表示設定がに設定されているCatalog場合、そのカテゴリIDが無効になっている場合、サブカテゴリリストページに表示されますか?

どうすればこれを達成できますか?

ありがとう

回答:


2

管理者:

管理->システム->構成->カタログ->検索エンジン最適化->カテゴリURLに親カテゴリパスを使用(NOに設定)

プログラム的に:

クラスMage_Catalog_Model_Urlを開き、以下の行にコメントします

//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//}
//elseif ($parentPath == '/') {
    $parentPath = '';
//}

function getCategoryRequestPath($category, $parentPath)

コアファイルを上書きしないようにするために、ファイルのローカルをいつでも作成できます


1
magento ceの Use Parent Category Path for Category URLsオプションはありません
Visakh B Sujathan 2017


0

以下のデフォルト機能を試すことをお勧めします

親カテゴリパスをURLから削除し、変更します

http://mysite.com/category/sub-category.htmlから http://mysite.com/sub-category.html

使用法 :

行く>システム- - >設定- >カタログ- >ソオプションMagentoの管理パネル

「」から「はい」またはいいえ」を選択しますUse Parent Category Path for Category URLs

カテゴリURLインデックスを更新

オプションYES => http://mysite.com/category/sub-category.html

オプションNO => http://mysite.com/sub-category.html

編集する

    <global>
        <models>
             <catalog>
                <rewrite>
                    <product_url>YourNamespace_Catalog_Model_Product_Url</product_url>
                </rewrite>
            </catalog>
        </models>
   </global>

カテゴリのURLを書き換えてみてください。これがあなたのために働くことを願っています。私はこのmodle urlの書き換えについて100%確信が持てませんmagento1.7

これが確かにあなたを助けることを願っています。


Liyakatは正しいです。
アミットベラ

@liyakat、にUse Categories Path for Product URLs設定yes。つまり、あなたが言ったオプションを見ることができません'Use Parent Category Path for Category URLs'。バージョンは1.7.0.2
Lazar

Mage管理者にそのようなオプションが表示されない場合はどうすればよいですか?
Lazar、2014年

@Lazar、私の最新の答えを見てください。また、カタログのURLモデルに必要な変更を加えることができます
liyakat

この設定はどこですか?(Magento 1.8.1では見つかりません)
snh_nl 14

0

子カテゴリのURLから親カテゴリのパスを削除するには 、以下のように
クラスのMage_Catalog_Model_Url
オーバーライドメソッドを書き換えpublic function getCategoryRequestPath($category, $parentPath)ます

public function getCategoryRequestPath($category, $parentPath)
{
    $storeId = $category->getStoreId();
    $idPath = $this->generatePath('id', null, $category);
    $suffix = $this->getCategoryUrlSuffix($storeId);

    if (isset($this->_rewrites[$idPath])) {
        $this->_rewrite = $this->_rewrites[$idPath];
        $existingRequestPath = $this->_rewrites[$idPath]->getRequestPath();
    }

    if ($category->getUrlKey() == '') {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getName());
    } else {
        $urlKey = $this->getCategoryModel()->formatUrlKey($category->getUrlKey());
    }

    $categoryUrlSuffix = $this->getCategoryUrlSuffix($category->getStoreId());
    // Code commented to remove parent category path from child category path
    //if (null === $parentPath) {
    //$parentPath = $this->getResource()->getCategoryParentPath($category);
    //}
    //elseif ($parentPath == '/') {
    $parentPath = '';
    //}
    $parentPath = Mage::helper('catalog/category')->getCategoryUrlPath($parentPath,
        true, $category->getStoreId());

    $requestPath = $parentPath . $urlKey . $categoryUrlSuffix;
    if (isset($existingRequestPath) && $existingRequestPath == $requestPath . $suffix) {
        return $existingRequestPath;
    }

    if ($this->_deleteOldTargetPath($requestPath, $idPath, $storeId)) {
        return $requestPath;
    }

    return $this->getUnusedPath($category->getStoreId(), $requestPath,
        $this->generatePath('id', null, $category)
    );
}


コードの下で変更

if (null === $parentPath) {
    $parentPath = $this->getResource()->getCategoryParentPath($category);
} elseif ($parentPath == '/') {
    $parentPath = '';
}


//if (null === $parentPath) {
//    $parentPath = $this->getResource()->getCategoryParentPath($category);
//} elseif ($parentPath == '/') {
    $parentPath = '';
//}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.