Làm thế nào để tạo một nội dung có điều kiện cho một chủ đề wordpress?


7

Tôi đang cố gắng tạo một tuyên bố có điều kiện cho chiều rộng nội dung trong hàm.php của chủ đề của tôi. Vì vậy, một số danh mục sẽ có nội dung băng thông là 580, một số sẽ có 900. Điều này sẽ làm cho oEmbed hoạt động chính xác ở bất cứ nơi nào nó được sử dụng.

Thông thường, bạn sẽ có cái này trong hàm.php:

if ( ! isset( $content_width ) ) 
    $content_width = 900;

Tôi muốn một cái gì đó như thế này:

if(in_category(array('news','blog'))) {
   $content_width = 580;
} 
elseif(is_page()) {
   $content_width = 580;
}
else {
   $content_width = 900;
}

Khi tôi có cái này trong hàm.php, chiều rộng nội dung sẽ trở thành bất cứ thứ gì tôi viết ở dòng cuối cùng.

Tui bỏ lỡ điều gì vậy? Điều này thậm chí có thể?

Cảm ơn!


Tại sao không chỉ đặt các độ rộng khác nhau trong css, đặt php vào thẻ body để hiển thị danh mục đó và sau đó thêm css khác nhau vào mỗi thẻ?

Câu trả lời:


9

Không, nó không thể. $ content_creen là hằng số toàn chủ đề và được đặt trong hàm.php trước khi bất kỳ điều kiện truy vấn nào được đặt.

$ content_creen được sử dụng để xác định kích thước hình ảnh trung gian trong image_send_to_editor. Kích thước hình ảnh "lớn" sẽ được đặt thành giá trị của $ content_creen.

Nếu bạn cần sửa đổi các kích thước đó trên cơ sở từng loại, bạn có thể nối vào bộ lọc đó ... xem câu trả lời của tôi về thay đổi câu hỏi set_post_thumbnail_size theo trang quản trị loại bài đăng để biết ví dụ chung về cách thực hiện điều này (lưu ý rằng điều này hầu như sẽ luôn thất bại nếu bạn đang cố gắng thực hiện theo thể loại, vì danh mục bài đăng hầu như không được đặt khi người dùng tải lên hình ảnh lần đầu tiên - cài đặt nó theo loại bài đăng đáng tin cậy hơn một chút)

Cho dù bài đăng và trang của bạn rộng bao nhiêu, hãy đặt $ content_creen thành hình ảnh rộng nhất mà bạn muốn người dùng đưa vào bài đăng.


0

Có lẽ điều này hoạt động:

if(in_category(array('news','blog'))) {
   $GLOBALS['content_width'] = 580;
} 
elseif(is_page()) {
   $GLOBALS['content_width'] = 580;
}
else {
   $GLOBALS['content_width'] = 900;
}

5
Vui lòng thêm một lời giải thích cho câu trả lời của bạn: tại sao điều đó có thể giải quyết vấn đề?
fuxia
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.