在Wordpress中使用HTML替换短代码

时间:2015-05-08 03:33:04

标签: php wordpress shortcode

我正在使用插件使用短代码抓取亚马逊产品图片的WordPress网站。

您只需将书籍的asin插入短代码中,如下所示:

[amazon template=image&asin=B00FYY53B8]

当帖子加载时,使用来自amazon的URL将短代码转换为实际图像HTML ....所以上面的例子将返回

http://ecx.images-amazon.com/images/I/71kIifYTccL._SL1500_.jpg

我正在使用另一个自定义插件来构建帖子的内容,到目前为止,我只是使用此短代码作为帖子内容的一部分。我想做一些其他的事情,比如设置特色图片等,并且需要该URL。

我试过

echo do_shortcode( '[amazon template=image&asin=B00FYY53B8]' );

但它不会返回任何东西。有没有办法在插件中“执行”短代码并保存输出?

最终,我还希望扩展此功能,以便我可以用其HTML输出替换其他/旧的短代码,并将其保存回帖子,基本上消除了在帖子中使用某些短代码。

2 个答案:

答案 0 :(得分:0)

我有一个在wordpress中添加短代码的演示。我希望它有所帮助。

add_action('plugins_loaded','MOD_load');

function MOD_load() {
     short_enable_form();
}

function short_enable_form(){
    if(!function_exists('add_shortcode')) {
                   return;
    }
    add_shortcode('form_mod' , array(&$this, 'out_put_form'));
}

public function out_put_form(){         
    return 'HTML TEXT';
}

答案 1 :(得分:0)

您可以将此代码包含在functions.php中。然后在content-singular.php或主题中的类似文件中调用此函数。

 function updatesc_database( $post ) {
 if ( empty($post) ) global $post;
 if ( empty($post) || ! isset($post->post_content) ) return false;
 $content = $post->post_content;
 $shortc1="amazon template=image&asin";
 $shortc2="B00FYY53B8]"; //insert the number variable here
 $shortwh=$shortc1.$shortc2;
 $replace = do_shortcode($shortwh);
 $content = str_replace( $shortwh, $replace, $content );   
 return $content;
 }