当显示3列时,库出现奇怪的问题

时间:2018-10-13 作者:Damian

我有个奇怪的问题。我已经为Wordpress gallery创建了自定义拇指大小。这是我在函数中的代码。php:

add_image_size(\'square_thumb_1\', 1136, 596, true);
add_image_size(\'square_thumb_2\', 568, 568, true);
add_image_size(\'square_thumb_3\', 380, 380, true);
add_image_size(\'square_thumb_4\', 284, 284, true);
add_image_size(\'square_thumb_5\', 228, 228, true);
add_image_size(\'square_thumb_6\', 190, 190, true);
add_image_size(\'square_thumb_7\', 165, 165, true);
add_image_size(\'square_thumb_8\', 142, 142, true);
add_image_size(\'square_thumb_9\', 127, 127, true);
add_filter(\'shortcode_atts_gallery\', \'meks_gallery_atts\', 10, 3);

function meks_gallery_atts($output, $pairs, $atts)
{
    if ($atts[\'columns\'] == 1) {
        $output[\'size\'] = \'square_thumb_1\';
    } else if ($atts[\'columns\'] == 2) {
        $output[\'size\'] = \'square_thumb_2\';
    } else if ($atts[\'columns\'] == 3) {
        $output[\'size\'] = \'square_thumb_3\';
    } else if ($atts[\'columns\'] == 4) {
        $output[\'size\'] = \'square_thumb_4\';
    } else if ($atts[\'columns\'] == 5) {
        $output[\'size\'] = \'square_thumb_5\';
    } else if ($atts[\'columns\'] == 6) {
        $output[\'size\'] = \'square_thumb_6\';
    } else if ($atts[\'columns\'] == 7) {
        $output[\'size\'] = \'square_thumb_7\';
    } else if ($atts[\'columns\'] == 8) {
        $output[\'size\'] = \'square_thumb_8\';
    } else {
        $output[\'size\'] = \'square_thumb_9\';
    }
    return $output;
}
除了第3列之外,一切都正常-应该添加square\\u thumb\\u 3,但它是square\\u thumb\\u 9,比应该的小得多。。。

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

难道你不能通过做以下事情来缩短它吗?

function meks_gallery_atts($output, $pairs, $atts)
{
  $output = array();
  if (in_array($output[\'size\'], array(1,2,3,4,5,6,7,8))) {
    $output[\'size\'] = \'square_thumb_\' . $output[\'size\'];
  }else{
    $output[\'size\'] = \'square_thumb_9\';
  }
  return $output;
}
听起来$atts[\'columns\']从来都不是3。您是否尝试过对字符串进行严格检查,而不是对整数进行松散检查?

正在使用:if ($atts[\'columns\'] === \'1\') {而不是这个?if ($atts[\'columns\'] == 1) {

除此之外。。。也许可以尝试此功能以调试(&A);看看3的值到底是什么?

function meks_gallery_atts($output, $pairs, $atts)
{ var_dump(array($output, $pairs, $atts)); exit;

结束

相关推荐

Override img class in gallery

我使用Wordpress for AngularJS作为后端(wp json插件),实际上我为主题制作的结构是这样的myApptheme -style.css //nothing special here just inits the theme -index.php -header.php -functions.php lib //here some overrides php --gallery.php app //h