我编写了自己的插件,以动态的方式显示一些信息。一切都在我的本地主机上完美运行,但当我迁移到服务器时,我的插件的短代码(只有那个)显示为文本。
我检查过,插件仍然处于激活状态。
这是我的插件:
<?php
/*
Plugin Name: video-linker
Plugin URI: http://example.com
Description: Youku, Youtube and Vimeo linker
Version: 1.0
Author: Arno Turelinckx
Author URI: http://example.com
*/
$youku = '';
$youtube = '';
$vimeo = '';
$image = '';
function visualize_buttons($atts) {
//get the links from the shortcode
$attributes = shortcode_atts( array(
'youku' => '',
'youtube' => '',
'vimeo' => '',
'image' => '',
), $atts );
$youku = $attributes['youku'];
$youtube = $attributes['youtube'];
$vimeo = $attributes['vimeo'];
$image = $attributes['image'];
echo '<div style="position: relative;">';
echo '<div class="video-linker-image" style="background-image: url('.$image.');background-size: cover;"></div>';
echo '<ul class="video-linker">';
echo '<h2>Watch the video</h2>';
echo '<li class="video-linker-youku"><a href="'.$youku.'" target="_blank"></a></li>';
echo '<li class="video-linker-youtube"><a href="'.$youtube.'" target="_blank"><i class="icon-youtube"></i></a></li>';
echo '<li class="video-linker-vimeo"><a href="'.$vimeo.'" target="_blank"><i class="icon-vimeo"></i></a></li>';
echo '</ul>';
echo '</div>';
}
function cf_shortcode($atts) {
ob_start();
visualize_buttons($atts);
return ob_get_clean();
}
add_shortcode( 'video-linker', 'cf_shortcode' );
?>
这就是我在页面中调用短代码的方式:
[video-linker youku =“”youtube =“”vimeo =“”image =“url_to_image.jpg”]
知道问题可能是什么?
感谢任何帮助。
答案 0 :(得分:0)
我编辑了代码。这应该有效,我把它放在了functions.php
中的它中,它起作用了:
<?php
/*
Plugin Name: video-linker
Plugin URI: http://example.com
Description: Youku, Youtube and Vimeo linker
Version: 1.0
Author: Arno Turelinckx
Author URI: http://example.com
*/
function cf_shortcode($atts) {
extract(shortcode_atts( array(
'youku' => '',
'youtube' => '',
'vimeo' => '',
'image' => '',
), $atts));
$youku = isset( $atts['youku'] ) ? $atts['youku'] : '';
$youtube = isset( $atts['youtube'] ) ? $atts['youtube'] : '';
$vimeo = isset( $atts['vimeo'] ) ? $atts['vimeo'] : '';
$image = isset( $atts['image'] ) ? $atts['image'] : '';
$return = '<div style="position: relative;">';
$return .= ($image != '') ? '<div class="video-linker-image" style="background-image: url('.esc_url($image).');background-size: cover;"></div>' : '';
$return .= '<ul class="video-linker">
<h2>Watch the video</h2>';
$return .= ($youku != '') ? '<li class="video-linker-youku"><a href="'.esc_url($youku).'" target="_blank"></a></li>' : '';
$return .= ($youtube != '') ? '<li class="video-linker-youtube"><a href="'.esc_url($youtube).'" target="_blank"><i class="icon-youtube"></i></a></li>' : '';
$return .= ($vimeo != '') ? '<li class="video-linker-vimeo"><a href="'.esc_url($vimeo).'" target="_blank"><i class="icon-vimeo"></i></a></li>' : '';
$return .= '</ul>
</div>';
return $return;
}
add_shortcode( 'video_linker', 'cf_shortcode' );