迁移后短代码无效

时间:2016-03-17 06:52:55

标签: wordpress wordpress-plugin shortcode

我编写了自己的插件,以动态的方式显示一些信息。一切都在我的本地主机上完美运行,但当我迁移到服务器时,我的插件的短代码(只有那个)显示为文本。

我检查过,插件仍然处于激活状态。

这是我的插件:

<?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”]

知道问题可能是什么?

感谢任何帮助。

1 个答案:

答案 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' );