2011-11-10 35 views
7

Tôi tạo (hoặc thử tốt hơn) để tạo chủ đề WordPress đầu tiên của mình với Ít hơn.wp_enqueue_style và rel khác so với biểu định kiểu?

Những gì tôi làm là sử dụng một kịch bản như thế vào functions.php của tôi

wp_register_style('screen_css', get_bloginfo('template_url') . '/css/screen.less', array(), false, 'screen'); 
wp_enqueue_style('screen_css'); 

và kết quả là:

<link rel='stylesheet' id='stigma_screen-css' href='http://www.stigmahost.dch/wp-content/themes/stigmahost/css/screen.less?ver=1.0' type='text/css' media='screen' /> 

Câu hỏi đặt ra là, tôi có thể thay đổi bằng cách nào đó rel = "stylesheet" khi tôi sử dụng hàm wp_register_style()?

+0

Cả trong những chức năng wp_register_style() cũng không wp_enqueue_style() sẽ cho phép bạn thiết lập các thuộc tính rel, nhưng nếu bạn có thể cung cấp thông tin thêm về những gì bạn đang cố gắng hoàn thành, có lẽ tôi có thể cung cấp một cách giải quyết? – brandwaffle

Trả lời

7

Mặc dù không có chức năng nào cho phép bạn chuyển giá trị đó vào, bạn có quyền truy cập vào thẻ trước khi nó được hiển thị với bộ lọc style_loader_tag. Nếu bạn làm điều gì đó như thế này ...

add_filter('style_loader_tag', 'my_style_loader_tag_function'); 

function my_style_loader_tag_function($tag){ 
    //do stuff here to find and replace the rel attribute 

    return $tag; 
} 

... bạn sẽ có thể thay thế thuộc tính rel bằng bất kỳ thứ gì bạn muốn. Hãy nhớ rằng bộ lọc này sẽ chuyển vào toàn bộ thẻ dưới dạng html, vì vậy bạn sẽ phải làm một preg_replace() hoặc một cái gì đó tương tự để thay thế giá trị bằng những gì bạn muốn. Ngoài ra, bộ lọc này sẽ chạy mỗi khi bạn enqueue một stylesheet, do đó hãy chắc chắn rằng bạn kiểm tra rằng bạn đã có một trong những quyền (với một preg_match() hoặc một cái gì đó) trước khi bạn thay đổi các thuộc tính rel.

+0

Cách tiếp cận rất thú vị! Thansk :) –

3

tôi biết đây là một q cũ, nhưng nó đã giúp tôi tìm ra điều này. vay từ câu trả lời brandwaffle ở đây là toàn bộ chức năng tôi đã sử dụng:

function childtheme_scripts() { 

wp_enqueue_style('less',get_stylesheet_directory_uri() .'/style.less'); 
add_filter('style_loader_tag', 'my_style_loader_tag_function'); 

wp_enqueue_script('less',get_stylesheet_directory_uri() .'/jscripts/less-1.3.0.min.js', false,'1.3.0'); 

} 
add_action('wp_enqueue_scripts','childtheme_scripts', 1); 


function my_style_loader_tag_function($tag){ 
    //do stuff here to find and replace the rel attribute  
    return preg_replace("/='stylesheet' id='less-css'/", "='stylesheet/less' id='less-css'", $tag); 
} 
+0

ít không cần jQuery AFAIK, bạn có nó trong mảng phụ thuộc –

+0

bắt tốt. sẽ chỉnh sửa. – helgatheviking

Các vấn đề liên quan