Xóa ID bài viết khỏi url Joomla 3


9

Tôi đang cố gắng xóa id bài viết khỏi URL Joomla 3. Tôi đã tìm kiếm xung quanh và phản hồi là trong

components\com_content\router.php

thay đổi 0để 1$advanced = $params->get('sef_advanced_link', 1);

trên dòng 38290

và cũng nhận xét ra

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

Tôi coi nó hoạt động tốt trong Joomla 2.5 vì tất cả các ý kiến ​​đề cập đến điều này.

Nhưng nó không làm việc cho tôi trên trang web Joomla 3.3 của tôi.

Làm thế nào tôi có thể đạt được điều này mà không cần tạo các mục menu cho mỗi bài viết?


Bạn có lỗi gì không?
Dmitry Rekun

Đơn giản chỉ cần tạo một liên kết menu cho bài viết của bạn.
saibbyweb

Lodder - Có, tôi nhận được liên kết tôi muốn, nhưng có trang lỗi 404 thay vì bài viết của tôi.
bịt miệng

Saibbyweb - Tôi có hơn 100 bài viết và con số sẽ tăng lên 500, vì vậy tôi không nghĩ nên tạo menu cho tất cả những bài viết này.
bịt miệng

Nếu tiện ích mở rộng K2 là một tùy chọn cho bạn, thì bạn có thể đạt được điều này thực sự dễ dàng. K2 có các tùy chọn để định tuyến nâng cao, với các tùy chọn cần thiết. Bạn có thể nhập các bài viết hiện tại vào K2. Kiểm tra Blog K2 của tôi và các liên kết readmore được tạo. Một giải pháp khác là sử dụng một cái gì đó giống như sh404SEF hoặc youwait cho điều này indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Joomla Cơ quan

Câu trả lời:


11

Bước 1

Chỉnh sửa các thành phần của com / com_content / router.php, sau đó tiếp tục ở bước 2.
(Có thể bạn sẽ phải thực hiện lại bước này mỗi khi bạn cập nhật Joomla.)

Bước 2

(Có hai nơi cần thực hiện thay đổi này, một ở gần đỉnh, một ở giữa) Thay thế này:

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

Với cái này:

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

Bước 3

Thay thế

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

với

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

và bạn đã hoàn thành.


bạn được chào đón @gag
saibbyweb

Tôi đã thử giải pháp trên trên trang 3.3.3 của mình nhưng không được. Các trang web hoàn chỉnh sẽ đi trống.

5

Đối với bất kỳ ai không muốn làm bẩn với việc chỉnh sửa mã Joomla, chúng tôi sẽ đề cập rằng các tiện ích mở rộng SEF của bên thứ 3 cung cấp khả năng xóa id khỏi các url SEF.

Có rất nhiều tiện ích mở rộng SEF mà ai đó có thể tìm thấy trong JED :

Ví dụ SH404SEF , là một trong những tiện ích mở rộng Joomla phổ biến và được sử dụng nhất, có lịch sử lâu dài và sự hỗ trợ mở rộng của nhiều thành phần bên thứ 3.

Đối với một giải pháp đơn giản hơn, gần đây tôi đã bắt gặp một plugin mới cung cấp một vài tính năng bao gồm "Xóa id khỏi bài viết, danh mục và thẻ SEF url". Giải pháp đơn giản và dễ dàng mà hiệu quả.

* Note1: Cả hai phần mở rộng được đề cập ở trên đều là các bản tải về có trả tiền.

* Note2: có một câu hỏi tương tự khác trong JSE .


Cõng về điều này, tôi là một fan hâm mộ của Direct Alias, một plugin chỉ xóa ID bài viết / danh mục và không có gì khác. Giải pháp tuyệt vời nếu bạn không muốn có toàn bộ thành phần SEF. extensions.joomla.org/extensions/extension/site-management/sef/...
YellowWebMonkey

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.