Usuń identyfikator artykułu z adresu URL Joomla 3


9

Próbuję usunąć identyfikator artykułu z adresu URL Joomla 3. Rozejrzałem się i odpowiedź jest gotowa

components\com_content\router.php

zmiana 0do 1IN$advanced = $params->get('sef_advanced_link', 1);

na liniach 38 i 290

i również skomentował

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}

Uważam, że działa dobrze w Joomla 2.5, ponieważ wszystkie komentarze o tym wspominają.

Ale to nie działa dla mnie na mojej stronie Joomla 3.3.

Jak mogę to osiągnąć bez tworzenia pozycji menu dla każdego artykułu?


Czy masz jakiś błąd?
— Dmitry Rekun

Po prostu utwórz link do menu dla swojego artykułu.
— saibbyweb

Lodder - Tak, dostaję link, który chcę, ale zamiast mojego artykułu mam stronę błędu 404.
— knebel

Saibbyweb - Mam ponad 100 artykułów, a liczba ta ma wzrosnąć do 500, więc nie sądzę, że dobrym pomysłem jest stworzenie menu dla nich wszystkich.
— knebel

Jeśli rozszerzenie K2 jest dla Ciebie opcją, możesz to osiągnąć naprawdę łatwo. K2 ma opcje zaawansowanego routingu wraz z potrzebnymi opcjami. Możesz zaimportować swoje ekscytujące artykuły do ​​K2. Sprawdź mój blog K2 i wygenerowane linki Readmore. Innym rozwiązaniem jest użycie czegoś takiego jak sh404sef lub youwait dla tego indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
— Joomla Agency

Odpowiedzi:


11

Krok 1

Edytuj „components / com_content / router.php”, a następnie przejdź do kroku 2.
(Prawdopodobnie będziesz musiał powtórzyć ten krok przy każdej aktualizacji Joomla.)

Krok 2

(Są dwa miejsca, w których trzeba dokonać tej zmiany, jedno u góry, jedno w środku) Zastąp to:

$advanced = $params->get('sef_advanced_link', 0);

Z tym:

$advanced = $params->get('sef_advanced_link', 1);

Krok 3

Zastąpić

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($db->quote($segment)));

z

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));

i jesteś skończony.


nie ma za co @gag
— saibbyweb

Próbowałem powyższego rozwiązania na mojej stronie 3.3.3 bezskutecznie. Cała strona byłaby pusta.

5

Dla każdego, kto nie chce się ubrudzić edycją kodu Joomla, wspomnimy, że rozszerzenia SEF innych firm umożliwiają usuwanie identyfikatorów z adresów URL SEF.

Istnieje wiele rozszerzeń SEF, które można znaleźć w JED :

Na przykład SH404SEF , jest jednym z najbardziej popularnych i używanych rozszerzeń Joomla, z długą historią i rozszerzoną obsługą wielu komponentów innych firm.

Jeśli chodzi o prostsze rozwiązanie, niedawno natknąłem się na nową wtyczkę, która oferuje kilka funkcji, w tym „Usuń identyfikatory z artykułów, kategorii i tagów adresów URL SEF”. Proste i łatwe rozwiązanie, które działa.

* Uwaga 1: oba wyżej wymienione rozszerzenia są płatnymi plikami do pobrania.

* Uwaga 2: w JSE istnieje inne podobne pytanie .


Piggybacking w tej kwestii, jestem fanem Direct Alias, który jest wtyczką, która po prostu usuwa identyfikatory artykułów / kategorii i nic więcej. Dobre rozwiązanie, jeśli nie chcesz całego komponentu SEF. extensions.joomla.org/extensions/extension/site-management/sef/…
— YellowWebMonkey

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.