Bạn có thể sử dụng một chức năng để xuất tên miền văn bản trong một chủ đề wordpress không?


7

Tôi đang làm việc về một chủ đề và tôi muốn làm cho nó có sẵn để dịch. Tôi chưa bao gồm một tên miền văn bản trên văn bản dịch bởi vì tôi không biết tên miền văn bản sẽ là gì. Tôi hình dung, cho đến khi tôi có thể đưa ra một tên cho chủ đề của mình, tôi chỉ nên sử dụng một chức năng để xuất tên miền văn bản của mình thay vì mã hóa cứng trên văn bản dịch.

THÍ DỤ:

Đây là cách truyền thống để thêm một miền văn bản:

echo _e('Hello', 'my-theme-name');

Cách tiếp cận của tôi là như thế này:

function text_domain() {
   define('TEXT_DOMAIN', 'my-theme-name', true );
   echo TEXT_DOMAIN;
}

và sử dụng như thế này:

 echo _e('Hello', text_domian());

... Và khi tôi đưa ra một tên cho chủ đề của mình, tôi chỉ có thể cập nhật nó ở một nơi thay vì một loạt các lần trong mỗi tệp.

CÂU HỎI LÀ: Đây có phải là một cách tốt để làm điều đó và tôi sẽ gặp phải vấn đề khi chủ đề của tôi được phê duyệt bởi nhóm đánh giá chủ đề WordPress?

Câu trả lời:


14

Không, điều này không ổn. KHÔNG KHÔNG KHÔNG. Đây là trích dẫn Otto yêu thích của tôi :

Trong tất cả các hàm dịch, không có biến PHP nào được cho phép trong các chuỗi, vì bất kỳ lý do gì, bao giờ hết.

Otto giải thích điều này chi tiết hơn, nhưng cách đơn giản để nói là các cuộc gọi dịch được phân tích cú pháp, không được thực thi . Vì vậy, biến của bạn (nói riêng chức năng của bạn) có thể không được đánh giá và phá vỡ miền văn bản.

Vì vậy, tốt hơn hết bạn nên sử dụng một tên duy nhất như wpse241589cho tên miền văn bản của bạn và thực hiện tìm kiếm và thay thế một khi bạn có một tên tốt hơn.


3
Bài viết bạn tham khảo đã trả lời câu hỏi của tôi và hơn thế nữa, tôi đánh giá rất cao việc bạn dành thời gian để trả lời câu hỏi này.
Fabian Amran

Touting riêng, mất gây tranh cãi của tôi trên textdomain: wordpress.stackexchange.com/questions/227148/...
cjbj

Câu trả lời và liên kết rất hướng dẫn
adelval
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.