在自定义图库中引入列数

时间:2016-04-30 作者:rgfx

很接近,但我对php一无所知。希望能够从wordpress图库中提取列。删除默认库的本质可能使这不可能。我认为秘密在于%s,也许我可以在sprintf中用这些%d中的另一个附加列计数。(显然,不知道我在做什么:)

function modified_gallery_shortcode( $attr ) {


$attr[\'link\']   = "file";
$attr[\'itemtag\']  = "";
$attr[\'icontag\']  = "";
$attr[\'captiontag\'] = "p";
$output = gallery_shortcode( $attr );
$output = strip_tags( $output, \'<a><img><li><p>\' );
$from = array(  
        "class=\'gallery-item\'", 
        "class=\'gallery-icon landscape\'", 
        "a href=",
     //  "class=\'wp-caption-text gallery-caption\'"
    );      
$to = array( 
      "",
      "",
      "a itemprop=\\"contentUrl\\" rel=\\"group\\" href=",
      "",
);
$output = str_replace( $from, $to, $output);
$output = sprintf( \'<div class="gallery gallery-columns-{$columns} " itemprop="image" itemscope itemtype="http://schema.org/ImageGallery">%s</div>\', $output );

 return $output;
}

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

Sprintf是一种在字符串中轻松使用变量的方法。%d 指定数字和%s 是任意字符串。

这样想吧

sprintf( \'<div class="%s">%s</div>\', $var1, $var2 );

因此,对于您的示例,您需要以下内容:

$output = sprintf( \'<div class="gallery gallery-columns-%s" itemprop="image" itemscope itemtype="http://schema.org/ImageGallery">%s</div>\', $columns, $output );
从你的代码中我唯一看不到的是$columns 获取定义的。

相关推荐

已修改Backbone JS中的wp.media.view.Settings.Gallery,但无法编辑

我已经添加到普通的WordPress gallery弹出窗口(在WordPress编辑器中单击“添加媒体”时),以便选择我的自定义库类型(与WordPress gallery主快捷码交互/使用)。我可以选择我的自定义图库类型(我有两种)或“本机”(这是普通的WordPress图库)。目前,在创建库时,一切都按预期工作(如果选择了非本机库类型,则除了我的非本机库使用的几个其他选项外,gallerytype会添加到发送给编辑器的短代码中)。然而,问题是,当想要编辑我已经创建的图库时,我用来选择图库类型(本机或