Tôi đang chạy một chức năng trên các trang [make-me-a-map]
sử dụng shortcode . Nó liệt kê javascript vào trang và tạo một bản đồ. Phần đó hoạt động tốt (woot!) Nhưng tôi gặp rắc rối với việc thêm biểu định kiểu vào chỉ những trang đó theo cách tương tự.
Hàm.php (Hiện tại)
add_shortcode("make-me-a-map", "create_new_map");
add_action("wp_head", "style_my_new_map");
function create_new_map () {
global $new_map_called_for;
$map_called_for = true;
wp_register_script('make-a-new-map', get_template_directory_uri() . '/js/new-map.js', array('jquery'), '0.1', true);
wp_enqueue_script('make-a-new-map');
}
function style_my_new_map() {
global $new_map_called_for;
if ($new_map_called_for == true) {
$tDir = get_template_directory_uri();
// Echo stylesheets because wp_register_style & wp_enqueue_style don't work atm
// And add_action('wp_enqueue_script', 'style_my_new_maps') with those functions would add style to all pages
// Not just the ones with [make-me-a-map] shortcode
echo "<link rel='stylesheet' href='", $tDir, "/css/new-map.css' />", PHP_EOL;
// Echo Javascript straight to page (couldn't do it with wp_enqueue_script) to let js code know the template directory
echo '<script type="text/javascript">var templateDir = "', get_template_directory_uri(), '";</script>', PHP_EOL;
$map_called_for = false;
}
}
Điều này dường như không làm việc không may. Các phong cách đang được thêm vào tất cả các trang.
Tôi đã không sử dụng wp_register_style & wp_enqueue_style vì lỗi này vẫn đang thêm <Link />
thẻ vào chân trang từ các chức năng đó.
Tôi có thể đã sử dụng add_action("wp_enqueue_scripts", "style_my_new_map")
thay vì add_action('wp-head', "style_my_new_map")
nhưng theo như tôi có thể thấy và đã kiểm tra, có sự khác biệt nào không? Vẫn thêm các bảng định kiểu cho tất cả các trang.
Vì vậy, câu hỏi của tôi thực sự có hai phần: :)
- Tại sao các hàm.php hiện tại không hoạt động và thêm kiểu cho tất cả các trang? Tôi không chắc đó là
global
cuộc gọi hayif
lời tuyên bố ... - Cách tốt nhất để tôi thêm các bảng định kiểu vào tiêu đề chỉ các trang mà shortcode trên được sử dụng, giả sử tôi sẽ không biết id trang, v.v.?
Cảm ơn trước! P