Đăng chéo câu trả lời của tôi từ https://stackoverflow.com/a/55053642/799327 , hy vọng điều đó không sao vì nó từ cùng một OP:
Vì vậy, sau một số nghiên cứu về điều này, cách tốt nhất để làm điều này là tận dụng oembed_fetch_url
móc lọc để thêm các đối số bổ sung vào URL yêu cầu oEmbed. Mục tiêu cụ thể của tôi là cho phép một tham số tự động phát, nhưng phương thức này được xây dựng để dễ dàng điều chỉnh theo bất kỳ đối số oEmbed nào bạn cần.
Đầu tiên, thêm phần này vào functions.php
:
<?php
/**
* Add parameters to embed
* @src https://foxland.fi/adding-parameters-to-wordpress-oembed/
* @src https://github.com/WordPress/WordPress/blob/ec417a34a7ce0d10a998b7eb6d50d7ba6291d94d/wp-includes/class-oembed.php#L553
*/
$allowed_args = ['autoplay'];
function koa_oembed_args($provider, $url, $args) {
global $allowed_args;
$filtered_args = array_filter(
$args,
function ($key) use ($allowed_args) {
return in_array($key, $allowed_args);
},
ARRAY_FILTER_USE_KEY
);
foreach ($filtered_args as $key => $value) {
$provider = add_query_arg($key, $value, $provider);
}
return $provider;
}
add_filter('oembed_fetch_url', 'koa_oembed_args', 10, 3);
Hàm này lấy URL oEmbed được tạo và các đối số tương ứng của nó và kiểm tra lại nó một danh sách mã hóa cứng của các đối số được liệt kê trong danh sách, trong trường hợp này ['autoplay']
. Nếu nó nhìn thấy bất kỳ từ khóa được liệt kê trong danh sách trắng nào trong các đối số được chuyển đến bộ lọc oEmbed, thì nó sẽ thêm chúng với giá trị đã cho vào URL oEmbed.
Sau đó, tất cả những gì bạn cần làm là thêm tham số oEmbed vào shortcode của bạn trong trình soạn thảo Wordpress, như sau:
[embed autoplay="true"]https://vimeo.com/1234567890/1234567890[/embed]
Xin lưu ý rằng lớp oEmbed trong WP sử dụng postmeta làm bộ đệm cho các yêu cầu này, vì vậy nếu bạn đã nhúng URL mục tiêu trước đó, bạn có thể phải xóa bộ nhớ cache postmeta theo cách nào đó hoặc thêm một loại buster cache nào đó vào URL mục tiêu. Nếu liên kết nằm trong bộ đệm, hook bộ lọc sẽ không bao giờ chạy được.
Tôi hy vọng điều này có ý nghĩa, vì tôi cảm thấy như đó là một tính năng khá hữu ích, thật khó để tìm ra cách đạt được.