Thực tiễn tốt nhất cho trang tùy chọn chủ đề dựa trên Phong cách / CSS?


7

Tôi muốn tạo một trang tùy chọn chủ đề chỉ dựa trên việc thay đổi kiểu CSS trên toàn trang web. Ví dụ: màu nền cơ thể / vùng chứa, kích thước phông chữ, màu phông chữ, v.v.

Tôi đã thực hiện điều này bằng cách sử dụng liên kết biểu định kiểu đến tệp php trong tiêu đề tạo ra CSS và sử dụng get_option.

Ví dụ background-color: <?php echo get_option('background_color'); ?>;

Tôi có thể đúng khi cho rằng đây là một ý tưởng tồi thực hiện khôn ngoan nếu có nhiều lựa chọn?

Tôi đã thử các phương pháp khác nhưng tất cả chúng dường như thêm các kiểu nội tuyến hoặc nhúng, mà tôi không muốn, làm thế nào để có được xung quanh điều này?

Việc tạo một tập lệnh tùy chỉnh ghi vào tệp CSS tĩnh có phải là một ý tưởng hay không?

Có cách nào API cài đặt có thể xử lý việc này không?

** PS. Câu trả lời tuyệt vời nhưng tôi đã quyết định thực sự đi bằng cách viết vào một tệp tĩnh vì nó cung cấp ít chi phí hơn.


Tại sao không sử dụng phong cách nội tuyến? nó nhanh hơn so với thực hiện một cuộc gọi WordPress khác chỉ để xử lý biểu định kiểu của bạn
onetrickpony

Tôi muốn thử tránh các kiểu nội tuyến hoặc nhúng như một cách thực hành tốt, tôi không thích bắt gặp nó và thích phân tách nội dung và thiết kế, nó thêm các vấn đề về bảo trì, khả năng truy cập và các vấn đề khác, vì vậy tôi muốn biết liệu có các tùy chọn khác không .
Wyck

Đối với bất kỳ ai kết thúc ở đây sau nhiều năm: sử dụng API tùy biến chủ đề ...
cjbj

Câu trả lời:


4

tạo một tập lệnh tùy chỉnh ghi vào tệp CSS tĩnh là một ý tưởng tồi !!! bạn sẽ cần tạo lại tệp mỗi lần bạn lưu bất kỳ thay đổi nào.

một giải pháp tốt hơn sẽ là lưu tất cả các tùy chọn trong một loạt các tùy chọn, ví dụ:

$MyCSS['background_color'] = #009988;
$MyCSS['background_repeat'] = no-repeat;
update_option('theme_settings',$MyCSS);

và đó là lý do tại sao bạn chỉ gọi hàm "get_option ()" một lần.

    $MyCSS = get_option('theme_settings');
// and use :
    echo $MyCSS['background_color'];

và thực hiện ít cuộc gọi đến cơ sở dữ liệu hơn và sử dụng ít tài nguyên hơn nếu bạn đang nghĩ hiệu suất khôn ngoan.


Giải pháp của bạn giống như Wyck đã làm. Nhưng tôi nghĩ sử dụng tệp CSS tĩnh là tốt hơn. Bởi vì bạn thường không cập nhật tệp này và cập nhật chỉ xảy ra một lần khi bạn cập nhật tất cả các tùy chọn. Trong trường hợp khác, tập lệnh PHP của bạn không phải làm bất cứ điều gì (thậm chí lặp lại các giá trị) và tệp CSS được gửi tĩnh cho người dùng, có thể được lưu trong bộ nhớ cache.
Anh Trần

1
Giải pháp của tôi có một chút khác biệt trong phù thủy, nó thực hiện ít cuộc gọi đến hàm get_option hơn và có sử dụng tệp CSS tĩnh luôn tốt hơn nhưng ít tùy chỉnh hơn.
BaiNET

Vâng, tôi nhận thấy các truy vấn db giảm 20-30% khi chỉ gọi get_option một lần cho mỗi tùy chọn. Tôi thường tạo một hàm bao bọc get_option lưu trữ các tùy chọn đã truy xuất trong một mảng toàn cục có thể được truy cập nếu cùng một tùy chọn được yêu cầu sau đó. WP nên được tích hợp sẵn
onetrickpony
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.