图库快捷代码函数帮助

时间:2012-03-02 作者:Terrell Anderson

好的,我在网上找到了这段代码,它允许您添加要在gallery快捷码中显示多少缩略图的选项。

下面的代码是他们所说的要添加到函数中的代码。php文件

      function get_random_gallery_images(){  
global $wpdb,$post;  
    $ids = "";  
    $counter = 0;  
    $number_of_posts = 4;  
    $args = array(  
    \'post_type\' => \'attachment\',  
    \'numberposts\' => 4,  
    \'post_status\' => null,  
    \'orderby\' => \'rand\',  
    \'post_parent\' => $post->ID  
    );  
    $attachments = get_posts($args);  
    if ($attachments) {  
        foreach ($attachments as $attachment) {  

            if ($counter != 0) {  
                $ids .= \',\'.$attachment->ID;  
            }  
            else {  
                $ids .= $attachment->ID;  
            }  
            $counter++;  
        }  
    }  
   return $ids;  }  
然后他们说将下面的代码添加到循环中

       $attachment_ids = get_random_gallery_images();  
       echo do_shortcode(\'[ gallery columns="4" include="\'.$attachment_ids.\'" link="file" ]\');
但我的问题是,他们没有说在循环中的何处添加代码。有人知道我可以在哪里添加此代码吗?此外,如果您有更好的解决方案来实现我的要求,请分享:)

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

您提供的函数实际上看起来没有那么糟糕。这与我处理问题的方式几乎相同,但是如果您只想修改include部分,并且总是获得与帖子相关联的attachment\\u id,那么我会这样做。

实际上,我会创建一个新的短代码,它又称为库短代码。

Inside of your functions.php file:

    function get_random_gallery_images(){  
global $wpdb,$post;  
    $ids = "";  
    $counter = 0;  
    $number_of_posts = 4;  
    $args = array(  
    \'post_type\' => \'attachment\',  
    \'numberposts\' => 4,  
    \'post_status\' => null,  
    \'orderby\' => \'rand\',  
    \'post_parent\' => $post->ID  
    );  
    $attachments = get_posts($args);  
    if ($attachments) {  
        foreach ($attachments as $attachment) {  

            if ($counter != 0) {  
                $ids .= \',\'.$attachment->ID;  
            }  
            else {  
                $ids .= $attachment->ID;  
            }  
            $counter++;  
        }  
    }  
   return $ids;  }

function multi_gallery_shortcode()
{
    $attachment_ids = get_random_gallery_images();
    return do_shortcode(\'[gallery columns="4" include="\'.$attachment_ids.\'" link="file"]\');
}


add_shortcode(\'multigallery\', \'multi_gallery_shortcode\'); 

And then inside of your post add this whenever you want to display the gallery. You add this code in via the editor, not any template files:

[multigallery]
所提供的代码具有很强的概念性,因为我还没有对其进行测试,但它应该可以工作,并按照您的要求执行。如果没有,请告诉我,我们会解决的。

我发现的另一个问题可能是错误的,这是您提供的代码中的一行,具体来说,这一行:do_shortcode(\'[ gallery columns="4" include="\'.$attachment_ids.\'" link="file" ]\'); - 在第一个开始括号和最后一个结束括号后有一个空格,这意味着它不会呈现为正确的短代码。在我的代码中,我解决了这个问题。

结束

相关推荐

如何将文本添加到_Content,但在img/Shortcode之后

我试图在每篇文章的开头添加一些文字(文字来自post_meta, 但是对于这个示例,我们假设它是静态文本)。以下是我尝试的内容:add_filter(\'the_content\', function($content) { return \'Text from meta - \' . $content; }); 然而,如果帖子以一个通常是浮动的图像开始(有时甚至用标题短代码包装),添加的文本将出现在图像之前。我想在文章的第一段前面加上文字。有没有办法在不解析完整