WordPress/自定义字段 Youtube / 我想用 php 替换视频 url (watch?v= with /v/)

发布于 2024-11-28 11:42:53 字数 1099 浏览 1 评论 0原文

我想在帖子和存档自定义字段中用 php 替换 youtube url。

我的代码是:

<?php if ( get_post_meta($post->ID, 'ixosrip', true) ) { ?>
<embed style="width:150px;height:25px;" allowfullscreen="false" type="application/x-shockwave-flash" src="http://www.youtube.com/v/<?php echo get_post_meta($post->ID, "ixosrip", $single = true); ?>&amp;ap=%2526fmt%3D18&amp;autoplay=0&amp;rel=0&amp;fs=1&amp;color1=0xC0C0C0&amp;color2=0xFFFFFF&amp;border=0&amp;loop=0">
<?php } else { ?>
<em>No sound</em>
<?php } ?>

当前我使用 JavaScript,取自这里:使用 js (jquery) 查找所有 YouTube 链接 / 但我的网站加载速度非常慢。 有没有办法在自定义字段中使用 php 来做到这一点?

谢谢。 大卫.

I want to replace in post and archive custom field the youtube url with php.

My code is:

<?php if ( get_post_meta($post->ID, 'ixosrip', true) ) { ?>
<embed style="width:150px;height:25px;" allowfullscreen="false" type="application/x-shockwave-flash" src="http://www.youtube.com/v/<?php echo get_post_meta($post->ID, "ixosrip", $single = true); ?>&ap=%2526fmt%3D18&autoplay=0&rel=0&fs=1&color1=0xC0C0C0&color2=0xFFFFFF&border=0&loop=0">
<?php } else { ?>
<em>No sound</em>
<?php } ?>

Current i use a javascript, taked from here: find all youtube links with js (jquery) / But its loads very slow my site.
Is there any way to do this with php in the custom field?

Thank you.
David.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想挽留 2024-12-05 11:42:53

如果您可以迭代自定义字段,只需使用简单的 PHP str_replace 即可完成:

$new_url = str_replace('/watch?v=', '/v/', $old_url);

其中 $old_url 是视频的当前 slug。

更新的答案:您可以解析 URL,获取 v 组件:

parse_str($video_url, $params);
$video_id = $params['v'];
$video_url = 'http://www.youtube.com/v/'.$video_id;

您可以将其放入循环或帖子页面模板或其他任何内容中,其中 $video_url 是包含的字段,嗯,您要更改的 YouTube 视频 URL。

If you can iterate over your custom fields, just do it with a simple PHP str_replace:

$new_url = str_replace('/watch?v=', '/v/', $old_url);

Where $old_url is your video's current slug.

UPDATED ANSWER: You could parse the URL, grabbing the v component:

parse_str($video_url, $params);
$video_id = $params['v'];
$video_url = 'http://www.youtube.com/v/'.$video_id;

You would put this in your loop or your post page template or whatever, where $video_url is the field containing, well, the YouTube video URL you want to alter.

如梦亦如幻 2024-12-05 11:42:53

是的,那里,
我能想到的一件事是制作 2 个自定义字段,其中一个是 id,并且具有类似于“FKAjQfL31Dw”的值

...而另一个则具有“v/”或“watch?v=”的值,具体取决于你选择哪一个。 (可以通过单选按钮完成)

所以您的代码可能看起来像这样

  <embed style="width:150px;height:25px;" allowfullscreen="false" type="application/x-shockwave-flash" src="http://www.youtube.com/
    <?php $key='youtube_format'; echo get_post_meta($post->ID, $key, true); ?>
    <?php $key='youtube_id'; echo get_post_meta($post->ID, $key, true); ?>
&ap=%2526fmt%3D18&autoplay=0&rel=0&fs=1&color1=0xC0C0C0&color2=0xFFFFFF&border=0&loop=0">

如果您尝试在档案中执行此操作,您很可能会将此代码添加到 content.php 或 content-video.php 中。

Aye there,
One thing I can think of is making 2 custom fields where one would be the id and would have a value like 'FKAjQfL31Dw'

...and the other would have a value of either 'v/' or 'watch?v=' depending on which one u choose. (can be done via radio buttons)

so ur code might look something like

  <embed style="width:150px;height:25px;" allowfullscreen="false" type="application/x-shockwave-flash" src="http://www.youtube.com/
    <?php $key='youtube_format'; echo get_post_meta($post->ID, $key, true); ?>
    <?php $key='youtube_id'; echo get_post_meta($post->ID, $key, true); ?>
&ap=%2526fmt%3D18&autoplay=0&rel=0&fs=1&color1=0xC0C0C0&color2=0xFFFFFF&border=0&loop=0">

If your trying to do this in archives, you would most likely add this code to content.php or content-video.php.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文