具有多个变量的快捷码

时间:2013-03-07 作者:Paul Brown

我正在尝试创建一个快捷码,以便在帖子中手动插入带有变量的Pinterest按钮。这是我在阅读了各种帖子并从Pinterest获取代码后得到的代码。我还没有测试过。我想知道是否有人愿意检查任何明显的错误或问题?

其次,我想知道是否可以自动获取帖子的url/永久链接来代替“url”变量?这就是我的代码。

有什么想法/意见吗?。。。

function mypinfunction( $atts ) {

extract( shortcode_atts( array(
    \'url\' => \'\'
    \'img\' => \'\'
    \'description\' => \'\'
), $atts ) );

return \'<span class="lowpin"><a data-pin-config="none"
href="//pinterest.com/pin/create/button/
url=\'.url.\'&media=\'.img.\'&description=\'.description.\'" data-pin-do="buttonPin" >
<img src="//assets.pinterest.com/images/pidgets/pin_it_button.png" /></a></span>\'

add_shortcode(\'skipspin\', \'mypinfunction\');
插入的简短代码为[skipspin url="http://example.com" img="http://example.com/image.jpg" description="some words here"]

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果你愿意enable debugging 然后测试代码(不确定为什么不愿意这样做),您会发现代码有问题。数组元素需要用逗号分隔,PHP变量以$. 你所拥有的不会按原样工作。这种纯粹的PHP代码审查在这里是无关紧要的。也许在Code Review 姐妹网站,但先自己测试代码。

问题中唯一特定于WordPress的部分是:

其次,我想知道是否可以自动获取帖子的url/永久链接来代替“url”变量?

对在一个循环中,这将为您提供post permalink。

global $post;
$url = get_permalink($post);
这更接近正确。

function mypinfunction( $atts ) {
  global $post;
  extract( shortcode_atts( array(
      \'url\' => \'\',
      \'img\' => \'\',
      \'description\' => \'\'
  ), $atts ) );

  $url = get_permalink($post);

  return \'<span class="lowpin"><a data-pin-config="none"
  href="//pinterest.com/pin/create/button/
  url=\'.$url.\'&media=\'.$img.\'&description=\'.$description.\'" data-pin-do="buttonPin" >
  <img src="//assets.pinterest.com/images/pidgets/pin_it_button.png" /></a></span>\';
}
add_shortcode(\'skipspin\', \'mypinfunction\');

结束

相关推荐

SHORTCODE_ATTS-一个URL变量不起作用

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