Vấn đề ít được nhắc tới của Shortcode

Viết bởi

trong

The-Unspoken-Problem-of-Shortcodes

Shortcode là một trong những đỉnh cao của WordPress. Shortcode là cầu nối giữa các nhà phát triển và người tạo trang web, cho phép mọi người đặt các phần nội dung phức tạp vào hầu như bất kỳ nơi nào họ muốn. Các nhà phát triển plugin rất thích shortcode vì điều này mang lại sự linh hoạt hơn trong cách thức và vị trí mà người dùng của họ hiển thị nội dung.

Nếu bạn chưa biết shortcode là gì và trông chúng như thế nào, thì chúng là những đoạn văn bản trông giống như mã cổ điển được bao bọc trong dấu ngoặc vuông. Chúng trông đại loại như thế này:

Shortcode cụ thể này được gọi là shortcode embed và được tích hợp mặc định trong WordPress. Shortcode này nhúng video từ URL vào nội dung của bạn. Chỉ cần sao chép và dán shortcode ở trên vào trang web của bạn nếu bạn muốn thử nghiệm.

Ở hậu trường, điều xảy ra là khi WordPress gặp một shortcode trong nội dung của bạn, nó sẽ được xử lý và chuyển đổi thành một thứ khác. Trong trường hợp ở trên của chúng ta, bất cứ khi nào một

shortcode được phát hiện, WordPress sẽ lấy URL trong shortcode và kiểm tra đối chiếu với một số nhà cung cấp nội dung mà nó có. Khi tìm thấy một nhà cung cấp, sau đó nó sẽ lấy mã nhúng iframe thích hợp và hiển thị mã đó thay thế.

Vậy vấn đề ở đây là gì? Nghe có vẻ khá dễ dàng, bạn chỉ cần nhập một đoạn văn bản ngắn có dấu ngoặc vuông là xong.

Sự xuất hiện của Shortcode API..

Vô số Shortcode

Shortcode API mở ra khả năng tạo shortcode cho các nhà phát triển. Nhờ đó, các nhà phát triển có thể thêm shortcode của riêng họ vào bên trong plugin.

Điều này thật tuyệt vời, giờ đây chỉ với một đoạn mã ngắn (vì thế mà có tên là “shortcode”), cả người mới bắt đầu lẫn người dùng nâng cao đều có thể đặt hầu như bất kỳ loại nội dung nào họ muốn vào bất kỳ đâu.

Theo mặc định, WordPress chỉ có một số ít shortcode. Thật dễ dàng để gõ chúng ra từ trí nhớ vì chỉ có vài cái. Nhưng nếu bạn cài đặt một vài plugin, số lượng shortcode sẽ nhanh chóng tăng lên tới hàng chục hoặc nhiều hơn, và trong một số trường hợp là hơn một trăm. Mỗi shortcode đều có bộ thuộc tính riêng và hướng dẫn cách sử dụng chúng. Mỗi plugin rất có thể đều có một số dạng tài liệu hướng dẫn về cách hoạt động của tất cả các shortcode của họ và liệt kê tất cả các tham số có sẵn trong từng cái. Nhưng bạn sẽ phát điên nếu cố gắng ghi nhớ tất cả các shortcode và thuộc tính của chúng.

Vấn đề là không có một khu vực tập trung nào để bạn có thể tìm thấy tất cả các shortcode khả dụng trên trang web của mình và cách sử dụng chúng.

Một số nỗ lực giải quyết vấn đề

Một số plugin cố gắng giải quyết vấn đề này bằng cách trình bày tất cả các shortcode của riêng họ trong một menu thả xuống dễ truy cập. Sau đó, nhấp vào một shortcode sẽ xuất ra shortcode đó, cùng với tất cả các thuộc tính có thể có cho nó. Không còn cần phải ghi nhớ nữa, đó là một điều tốt.

Screen-Shot-2016-06-22-at-11.27.09-AM

Một số plugin còn tiến xa hơn và thêm vào một biểu mẫu popup cài đặt có các hộp kiểm và bộ chọn màu để điền vào các thuộc tính của shortcode.

Screen-Shot-2016-06-22-at-11.28.54-AM

Giải pháp này phần nào có hiệu quả. Tuy nhiên, mỗi plugin chỉ liệt kê các shortcode của riêng nó. Vì vậy, nếu mỗi plugin đều tạo bộ chọn shortcode theo cách riêng của mình, chắc chắn bạn sẽ gặp phải những lúc có nhiều bộ chọn shortcode trên màn hình của mình (Điều này đã từng xảy ra với tôi trước đây).

Screen-Shot-2016-06-22-at-11.22.41-AM

Nói cách khác, mỗi plugin tự làm việc của riêng mình và triển khai giải pháp riêng cho các shortcode của riêng họ. Một số plugin thêm một nút mới bên cạnh nút “Add Media”, hoặc một nút mới bên trong TinyMCE.

Vì vậy, bây giờ bạn có thể nghĩ rằng, “Tại sao không gom cả các shortcode của các plugin khác và đưa nó vào menu thả xuống / bộ chọn shortcode của bạn luôn?” Vâng, đó chính xác là những gì tôi đã nghĩ. Nhưng, điều này nói thì dễ hơn làm. Tôi sẽ giải thích lý do sau một chút, nhưng trước tiên chúng ta hãy xem một giải pháp lý tưởng sẽ trông như thế nào.

Giải pháp lý tưởng

Kế hoạch hoàn hảo sẽ là tạo một plugin thu thập tất cả các shortcode có sẵn trên trang web của bạn, sau đó hiển thị cho bạn danh sách và cũng giúp bạn điền tất cả các thuộc tính. Và mỗi khi bạn cài đặt một plugin mới, tất cả các shortcode mới được giới thiệu đó cũng sẽ được hiển thị cho bạn.

Hãy tưởng tượng một nơi tập trung mà tất cả các shortcode của bạn được đặt ở đó để dễ dàng truy cập. Mỗi shortcode sẽ mô tả chức năng của chúng và thuộc về plugin nào. Sau đó, đối với mỗi thuộc tính có sẵn, hãy tưởng tượng mỗi thuộc tính đó sẽ có một nhãn, một cách thích hợp để chọn giá trị cho chúng và một phần mô tả. Bạn sẽ được thấy các menu thả xuống, bộ chọn màu, nút radio, công tắc bật tắt và vân vân.

Một điều gì đó như thế này sẽ giúp cuộc sống của chúng ta với tư cách là những người tạo trang web và nội dung trở nên dễ dàng hơn. Không còn phải kiểm tra nhiều tài liệu khác nhau, hoặc các phần khác nhau trong trang quản trị của bạn chỉ để sao chép một shortcode được tạo cho slider mà bạn muốn sử dụng.

Điểm hạn chế

Thật không may, khá khó để làm điều gì đó như vậy vào lúc này. Không có cách nào chắc chắn để biết tất cả các chi tiết của một shortcode. Bạn có thể lấy danh sách tất cả các shortcode, nhưng chỉ có các thẻ/tên thực tế của chúng, bạn không thể nhận được bất kỳ chi tiết bổ sung nào về chúng chẳng hạn như danh sách các thuộc tính, chức năng của chúng và các loại của chúng – như một chuỗi, một màu sắc hay một con số. Bạn cũng không thể có được một phần mô tả sơ bộ nào cho từng thuộc tính.

Lưu ý dành cho các nhà phát triển ngoài kia: vâng, có một đối số thứ ba mới được thêm vào cho hàm shortcode_atts, nhưng đó không phải là một đối số bắt buộc. Vì vậy, trừ khi mọi nhà phát triển plugin trên thế giới đều triển khai nó, nếu không chúng ta vẫn sẽ không có cách chắc chắn nào để xác định tất cả các thuộc tính của một shortcode.

Shortcode API không cung cấp bất kỳ cơ chế nào để thêm mô tả shortcode, ép kiểu thuộc tính hoặc mô tả thuộc tính. Và trừ khi chính WordPress thêm một khu vực trung tâm để truy cập shortcode, tôi nghi ngờ cơ chế này sẽ được tạo ra.

Kết luận

Hiện tại, nhiệm vụ sắp xếp các shortcode được phó mặc cho từng nhà phát triển. Trừ khi một phương pháp tập trung được phát triển bên trong WordPress, hãy chuẩn bị tinh thần tiếp tục thấy nhiều nút “Add Shortcode” trong trang quản trị của bạn. Liệu một điều như thế này có nên được thêm vào WordPress Core hay không lại là một cuộc thảo luận lớn khác.

Một giải pháp thay thế

Có những plugin trình dựng trang giải quyết vấn đề này theo cách khác. Thay vì phát hiện shortcode bằng lập trình, họ có các trình ánh xạ shortcode nơi người dùng có thể nhập thủ công mọi chi tiết của một shortcode. Sau khi hoàn tất, nó sẽ khả dụng bên trong trình dựng trang. Mặc dù  cách này hoạt động, nhưng chúng chỉ khả dụng trên chính trang web của bạn.

Chúng tôi tại Page Builder Sandwich đang tạo ra một giải pháp mà hy vọng có thể giải quyết câu hỏi hóc búa về shortcode này. Hãy đăng ký nhận bản tin của chúng tôi bên dưới để nhận thông báo về tiến độ của chúng tôi.