短码怎么能取代帖子中的特色图片呢?

时间:2013-03-15 作者:Alex

当帖子中有特定的短代码时(例如[sc]anything[/sc]), 我想隐藏特写并取而代之。我该怎么做?

我在我的主题函数中添加了这个

// TopWide Shortcode
function wpsite_topwide( $atts, $content = null ){
    return \'<div class="topwide">\' . do_shortcode($content) . \'</div>\';
}
add_shortcode( \'topwide\', \'wpsite_topwide\' );

/** 
 * Find if content has topwide shortcode in it. 
 */ 
function wpsite_has_topwide_shortcode() { 
    global $post; 

    if ( ! is_single() ) 
        return; 

    if ( false === strpos( $post->post_content, \'[topwide\' ) ) 
        return false; 

    return true; 
}
这是单发邮件

<?php
if (wpsite_has_topwide_shortcode() && has_post_thumbnail() ) { 
    echo \'<div class="topwide">\' . get_the_post_thumbnail( $post->ID, \'full\' ) . \'</div>\'; 
} 
?>
但不会取代帖子中的特色图片。。。

1 个回复
SO网友:brasofilo

显然,您并没有将逻辑转换为代码:

如果它有短代码,请执行此操作;如果没有短代码,但有缩略图,请执行此操作;否则,请执行其他操作

if ( wpsite_has_topwide_shortcode() ) { 
    echo \'shortcode\';
} elseif( has_post_thumbnail() ) {
    echo get_the_post_thumbnail( $post->ID, \'full\' );
} else {
    echo \'Hello World\';
}

结束

相关推荐

SHORTCODE_ATTS-一个URL变量不起作用

我开发了一个基于短代码的小插件。下面是一个简化版的代码,用于短代码本身:function lishortcode($liatts) { extract(shortcode_atts(array( \"li\" => get_option(\'li\'), ), $liatts)); foreach ($liatts as $key => $option) { $li[$key] =