创建WordPress快捷码

时间:2012-05-11 作者:djw

我正在编写我的第一个WP短代码,在将我的工作PHP转换为工作短代码时遇到了困难。我已经成功地创建了一个基本的短代码,它可以在我想要的位置返回文本,所以很多都是好的。但我把巧克力放在花生酱里做得不太好。

以下是我对工作PHP的了解:

<div class="authorsocial">
    <h5>Connect, Share &amp; Follow</h5>
        <ul>
           <?php $meta_socialgr = apply_filters(\'the_content\', get_post_meta($post->ID, \'author_goodreads\', true));
              if (!empty($meta_socialgr)) { ?>
                <li><a href="<?php echo get_post_meta( $post->ID, \'author_goodreads\', true );?>"><img src="http://fiddlehead.milkbossindustries.com/files/goodreads.jpg"></a></li>
           <?php } ?>
        </ul>
</div><!-- end authorsocial -->              
下面是我的基本短代码:

<?php
// Adding a shortcode to return each author\'s social media links
    function funcauthor_social( $atts ){
        $output = \'bubbalicious\';
        return $output;
    }
    add_shortcode( \'author_social\', \'funcauthor_social\' );
?>
我在用函数替换“bubbalicious”方面并没有太大成功,因为我只是没有掌握。。。某物

<?php
// Adding a shortcode to return each author\'s social media links
    function funcauthor_social( $atts ){
        $output = \'<div class="authorsocial">
        <h5>Connect, Share &amp; Follow</h5>
        <ul>\'.$meta_socialgr = apply_filters(\'the_content\', get_post_meta($post->ID, \'author_goodreads\', true));
             if (!empty($meta_socialgr)) { \'
             <li><a href="\'.echo get_post_meta( $post->ID, \'author_goodreads\', true );.\'"><img src="http://fiddlehead.milkbossindustries.com/files/goodreads.jpg"></a></li>\'.}.\'
        </ul>
      </div>\';
      return $output;
 }
    add_shortcode( \'author_social\', \'funcauthor_social\' );
    ?>

1 个回复
SO网友:Stephen Harris

将逻辑与要返回的字符串分开:

<?php
// Adding a shortcode to return each author\'s social media links
    function funcauthor_social( $atts ){
        $meta_socialgr = esc_url(get_post_meta( $post->ID, \'author_goodreads\', true ));

        $output = \'<div class="authorsocial"><h5>Connect, Share &amp; Follow</h5><ul>\';

        if (!empty($meta_socialgr)) { 
            $output .= \'<li><a href="\'.$meta_socialgr.\'"><img src="http://fiddlehead.milkbossindustries.com/files/goodreads.jpg"></a></li>\';
          }

         $output .= \'</ul></div>\';

        return $output;
 }
    add_shortcode( \'author_social\', \'funcauthor_social\' );
    ?>
不清楚你为什么要申请the_content 筛选到$meta_socialgr 看起来应该是url。。。?

此外,当显示数据库中的数据(或其他一些用户输入)时,请确保sanitize 这些数据。

结束

相关推荐

从外部PHP脚本调用Functions.php中的函数

Preamble<我试图确保以前没有人问过这个问题。我刚开始使用StackExchange,所以我可能没有这么做。我不介意责备;厚皮肤,我学得很快:)THE PROBLEM我编写了一个函数并将其放置在主题函数中。phpfunction serverConnect() { $serverAccess = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!$serverAccess) { die(\"