Hapus ID Artikel dari url Joomla 3

9

Saya mencoba menghapus id artikel dari URL Joomla 3. Saya mencari-cari dan jawabannya ada di

components\com_content\router.php

Perubahan 0ke 1dalam$advanced = $params->get('sef_advanced_link', 1);

pada jalur 38 dan 290

dan juga berkomentar

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

Saya menganggap ini berfungsi dengan baik di Joomla 2.5 karena semua komentar menyebutkan ini.

Tetapi itu tidak berhasil bagi saya di situs web Joomla 3.3 saya.

Bagaimana saya bisa mencapai ini tanpa membuat item menu untuk setiap artikel?

muntah
sumber
Apakah Anda memiliki kesalahan?
Dmitry Rekun
Cukup buat tautan menu untuk artikel Anda.
saibbyweb
Lodder - Ya, saya mendapatkan tautan yang saya inginkan, tetapi memiliki 404 halaman kesalahan, bukan artikel saya.
lelucon
Saibbyweb - Saya memiliki lebih dari 100 artikel dan jumlahnya akan bertambah hingga 500, jadi saya pikir itu bukan ide yang baik untuk membuat menu untuk semua ini.
lelucon
Jika ekstensi K2 merupakan opsi untuk Anda, maka Anda dapat mencapainya dengan sangat mudah. K2 memiliki opsi untuk perutean tingkat lanjut, dengan opsi yang dibutuhkan. Anda dapat mengimpor artikel yang ada ke K2. Periksa Blog K2 saya dan tautan readmore yang dihasilkan. Solusi lain adalah menggunakan sesuatu seperti sh404sef atau Anda menunggu indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Joomla Agency

Jawaban:

11

Langkah 1

Edit "komponen / com_content / router.php", kemudian lanjutkan pada langkah 2.
(Anda mungkin harus melakukan kembali langkah ini setiap kali Anda memperbarui Joomla.)

Langkah 2

(Ada dua tempat yang perlu melakukan perubahan ini, satu di dekat bagian atas, satu di tengah) Ganti ini:

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

Dengan ini:

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

Langkah 3

Menggantikan

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

dengan

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

dan kamu sudah selesai.

saibbyweb
sumber
sama-sama @gag
saibbyweb
Saya telah mencoba solusi di atas pada situs 3.3.3 saya tetapi tidak berhasil. Situs lengkap akan kosong.
5

Bagi siapa pun yang tidak ingin menjadi kotor dengan mengedit kode Joomla, kami akan menyebutkan bahwa ekstensi SEF pihak ketiga menyediakan kemampuan untuk menghapus id dari url SEF.

Ada banyak ekstensi SEF yang dapat ditemukan seseorang di JED :

Misalnya SH404SEF , adalah salah satu ekstensi Joomla paling populer dan digunakan, dengan sejarah panjang dan dukungan diperpanjang oleh banyak komponen pihak ke-3.

Adapun solusi yang lebih sederhana, saya baru-baru ini menemukan sebuah plugin baru yang menyediakan beberapa fitur termasuk "Hapus id dari artikel, kategori dan tag url SEF". Solusi sederhana dan mudah yang berfungsi.

* Note1: Kedua ekstensi yang disebutkan di atas adalah unduhan berbayar.

* Note2: ada lagi pertanyaan serupa di BEJ .

FFrewin
sumber
Membonceng ini, saya penggemar Direct Alias ​​yang merupakan plugin yang hanya menghapus ID artikel / kategori dan tidak ada yang lain. Solusi yang bagus jika Anda tidak ingin komponen SEF keseluruhan. extensions.joomla.org/extensions/extension/site-management/sef/…
YellowWebMonkey