Entfernen Sie die Artikel-ID aus der Joomla 3-URL


9

Ich versuche, die Artikel-ID aus einer Joomla 3-URL zu entfernen. Ich habe mich umgesehen und die Antwort ist in

components\com_content\router.php

wechseln Sie 0zu 1in$advanced = $params->get('sef_advanced_link', 1);

in den Zeilen 38 und 290

und auch auskommentiert

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

Ich denke, dass es in Joomla 2.5 gut funktioniert, da alle Kommentare dies erwähnen.

Aber auf meiner Joomla 3.3-Website macht es für mich nicht den Job.

Wie kann ich dies erreichen, ohne Menüpunkte für jeden Artikel zu erstellen?


Hast du einen fehler
Dmitry Rekun

Erstellen Sie einfach einen Menülink für Ihren Artikel.
Saibbyweb

Lodder - Ja, ich erhalte den gewünschten Link, habe aber anstelle meines Artikels eine 404-Fehlerseite.
Knebel

Saibbyweb - Ich habe mehr als 100 Artikel und die Anzahl soll auf 500 steigen, daher halte ich es nicht für eine gute Idee, ein Menü für all diese Artikel zu erstellen.
Knebel

Wenn die Erweiterung K2 eine Option für Sie ist, können Sie dies ganz einfach erreichen. K2 bietet Optionen für erweitertes Routing mit den erforderlichen Optionen. Sie können Ihre vorhandenen Artikel in K2 importieren. Überprüfen Sie meinen K2-Blog und die generierten Readmore-Links. Eine andere Lösung besteht darin, etwas wie sh404sef oder youwait für dieses indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Joomla Agency zu verwenden.

Antworten:


11

Schritt 1

Bearbeiten Sie „components / com_content / router.php“ und fahren Sie dann mit Schritt 2 fort.
(Sie müssen diesen Schritt wahrscheinlich jedes Mal wiederholen, wenn Sie Joomla aktualisieren.)

Schritt 2

(Es gibt zwei Stellen, an denen diese Änderung vorgenommen werden muss, eine in der Nähe der Oberseite und eine in der Mitte.) Ersetzen Sie diese:

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

Mit diesem:

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

Schritt 3

Ersetzen

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

mit

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

und du bist fertig.


Gern
geschehen

Ich habe die oben genannte Lösung auf meiner 3.3.3-Site ohne Erfolg ausprobiert. Die gesamte Site würde leer sein.

5

Für alle, die sich beim Bearbeiten von Joomla-Code nicht schmutzig machen möchten, werden wir erwähnen, dass SEF-Erweiterungen von Drittanbietern die Möglichkeit bieten, die IDs aus den SEF-URLs zu entfernen.

Es gibt viele SEF-Erweiterungen, die jemand in JED finden kann :

Zum Beispiel ist SH404SEF eine der beliebtesten und am häufigsten verwendeten Joomla-Erweiterungen mit langer Geschichte und erweiterter Unterstützung durch viele Komponenten von Drittanbietern.

Für eine einfachere Lösung bin ich kürzlich auf ein neues Plugin gestoßen, das einige Funktionen bietet, darunter "IDs aus Artikeln, Kategorien und Tags entfernen, SEF-URLs". Einfache und einfache Lösung, die funktioniert.

* Hinweis 1: Beide oben genannten Erweiterungen sind kostenpflichtige Downloads.

* Anmerkung 2: Es gibt eine andere ähnliche Frage in JSE .


Huckepack, ich bin ein Fan von Direct Alias, einem Plugin, das nur die Artikel- / Kategorie-IDs und sonst nichts entfernt. Gute Lösung, wenn Sie keine ganze SEF-Komponente wollen. extensions.joomla.org/extensions/extension/site-management/sef/…
YellowWebMonkey

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.