gpt4 book ai didi

php - Wordpress中的PHP函数不显示嵌入式YouTube视频

转载 作者:行者123 更新时间:2023-12-03 06:32:24 25 4
gpt4 key购买 nike

php代码正在运行,并且正在显示联系表单和画廊,但是,youtube视频链接没有像在正常的Wordpress页面中那样嵌入。它只是在弹出窗口中显示地址。当在页面上使用html代码时,此方法有效,但在PHP函数中一次无效。如果有人可以帮助,这是代码。谢谢。

function artistArea($atts, $content = null) {
extract(shortcode_atts(array('number' => '#', 'photo' => '#', 'name' => '#', 'video' => '#', 'audio' => '#', 'gallery' => '#', 'bio' => '#', 'element1' => '#','element2' => '#','element3' => '#','element4' => '#'), $atts));

switch ($number) {
case '1' :
$element1 = '1';
$element2 = '2';
$element3 = '3';
$element4 = '4';
break;
case '2' :
$element1 = '5';
$element2 = '6';
$element3 = '7';
$element4 = '8';
break;
case '3' :
$element1 = '9';
$element2 = '10';
$element3 = '11';
$element4 = '12';
break;
case '4' :
$element1 = '13';
$element2 = '14';
$element3 = '15';
$element4 = '16';
break;
case '5' :
$element1 = '17';
$element2 = '18';
$element3 = '19';
$element4 = '20';
break;
default :
$element1 = '1';
$element2 = '2';
$element3 = '3';
$element4 = '2';
break;
break;
}

switch ($type) {
case 'lounge' :
$formType = '[contact-form-7 id="4" title="Lounge Artists"]';
break;
case 'magic' :
$formType = '[contact-form-7 id="184" title="Magic Artists"]';
break;
case 'tribute' :
$formType = '[contact-form-7 id="185" title="Tribute Artists"]';
break;
case 'comedy' :
$formType = '[contact-form-7 id="186" title="Comedy Artists"]';
break;
case 'dance' :
$formType = '[contact-form-7 id="187" title="Dance Artists"]';
break;
case 'hen' :
$formType = '[contact-form-7 id="188" title="Hens Party Artists"]';
break;
case 'hypnotist' :
$formType = '[contact-form-7 id="189" title="Hypnotist Artists"]';
break;
case 'circus' :
$formType = '[contact-form-7 id="190" title="Circus Artists"]';
break;
default :
$formType = '[contact-form-7 id="4" title="Lounge Artists"]';
break;
break;
}

switch ($audio) {
case '0' :
$audioSection = ''; break;
default :
$audioSection = '
<div class="artists_audio">
<a class="lbp-inline-link-'.$element2.' cboxElement" href="#">AUDIO</a>
<div style="display: none;"><div id="lbp-inline-href-'.$element2.'" style="padding:10px; background: #fff;">[soundcloud url="'.$audio.'" params="" width=" 100%" height="166" iframe="true" /]</div></div>
</div>'; break;
break;
}

switch ($video) {
case '0' :
$videoSection = ''; break;
default :
$videoSection = ' <div class="artists_video">
<a class="lbp-inline-link-'.$element1.' cboxElement" href="#">VIDEO</a>
<div style="display: none;"><div id="lbp-inline-href-'.$element1.'" style="padding:10px; background: #fff;">
'.$video.'
</div></div>
</div>'; break;
break;
}

switch ($gallery) {
case '0' :
$gallerySection = ''; break;
default :
$gallerySection = ' <div class="artists_pictures">
<a class="lbp-inline-link-'.$element3.' cboxElement" href="#">PICTURES</a>
<div style="display: none;"><div id="lbp-inline-href-'.$element3.'" style="padding:10px; background: #fff;">[nggallery id='.$gallery.']</div></div>
</div>'; break;
break;
}


$output = '<div class="artist_enclosure">
<div class="artists_photo">
<img src="'.$photo.'" alt="'.$name.'" width="150" height="150" class="alignnone size-thumbnail wp-image-39" />
</div>
<div class="artists_name">
'.$name.'
</div>
<div class="artists_bio">
'.$content.'
</div>

<div class="artists_media">

'.$videoSection.'

'.$audioSection.'

'.$gallerySection.'

<div class="artists_booknow">
<a class="lbp-inline-link-'.$element4.' cboxElement" href="#">BOOK NOW!</a>
<div style="display: none;"><div id="lbp-inline-href-'.$element4.'" style="padding:10px; background: #fff;">'.$formType.'</div></div>
</div>
</div>
</div>

';
return do_shortcode($output);
}
add_shortcode('artist', 'artistArea');

最佳答案

do_shortcode不会查找oEmbeds。您必须直接调用oEmbed代码,但是在oEmbed代码查看您的内容之前,需要先进行一些设置。

代替这个

return do_shortcode($output);

…您需要执行以下操作:
// Use the WP_Embed instance WordPress already set up
global $wp_embed;

/**
* Replace the global $post with a fake ID (a really crazy one!)
* or else WP_Embed::autoembed() will skip the oEmbed check
* for some reason.
**/
global $post;
$oldpost = $post;
$post = new stdClass();
$post->ID = PHP_INT_MAX;

// Process oEmbeds
$output = $wp_embed->autoembed( do_shortcode( $output ) );

// Restore the original $post
$post = $oldpost;

return $output;

关于php - Wordpress中的PHP函数不显示嵌入式YouTube视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com