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

Wordpress/自定义域Youtube/我想用php替换视频url(watch?v=with/v/),php,wordpress,replace,field,Php,Wordpress,Replace,Field,我想用php替换post和archive自定义字段中的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.co

我想用php替换post和archive自定义字段中的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,取自这里:,但它的加载速度非常慢。 在自定义字段中使用php有什么方法可以做到这一点吗

多谢各位。
David。

如果可以迭代自定义字段,只需使用简单的PHP str_替换即可:

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

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

parse_str($video_url, $params);
$video_id = $params['v'];
$video_url = 'http://www.youtube.com/v/'.$video_id;
你可以把它放在你的循环或者你的帖子页面模板或者其他任何地方,其中$video\u url是一个包含你想要更改的YouTube视频url的字段, 我能想到的一件事是创建两个自定义字段,其中一个是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); ?>
&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">

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

谢谢您的评论。问题是,我不知道如何将您的代码插入其中:只是一个边缘案例,但任何带有进一步GET变量的YouTube URL,例如闭路字幕等。这将中断。确实,Lucanos。我已经用另一种方法更新了我的答案。在数据库上执行SQL更新不是更容易吗?为什么要使用PHP?您好,首先我要感谢大家的回复。现在我要说的是:我尝试将Martin的新代码放在循环内测试的post模板中,如下所示:
  <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); ?>
&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">