多个缩略图和一个图库

时间:2014-01-30 作者:Jan Desta

我正在寻找一个在WP页面上显示多个图片缩略图的库的解决方案,but not all thumbnails in gallery (如WP works中的默认库)。我想在页面上显示(即)特定的3个缩略图,其中(每一个)指向同一个包含3个以上图像(即7个图像)的图库。此外(这将是超级棒),如果它能在描述有多少图片在画廊(一些可湿性粉剂功能,你知道吗?)。

它的工作原理应该类似于使用具有此类(伪造)属性的图像的快捷代码:“显示缩略图”

[gallery ids="152,153,103,104,102,64,60" show-thumbnails="152,153,103"]
在WordPress中可能吗?也许你知道一些插件有这样的选项?或者知道如何将一些附加参数传递给WP?谢谢

2 个回复
SO网友:falguni mistry

您可以在WP页面中添加此代码。对于要在WP页面中添加的任何插件短代码:

<?php do_shortcode(\'[plugin shortcode]\'); ?>
例如:

<?php echo do_shortcode(\'[gallery ids="152,153,103,104,102,64,60" show-thumbnails="152,153,103"]\'); ?>

SO网友:David

这是可能的,但需要一些发展努力。首先,重要的是要知道,WordPress default»galleries«不是可以使用单独URL寻址的离散资源。它们只是在单个POST上下文中定义的短代码。

因此,您需要做的是定义一个URL,缩略图指向该URL,当然,它与posts缩略图不同。一种(并非唯一)方法是,向永久链接添加重写端点。假设你的post permalink是your-domain.tld/2014/a-wordpress-post/ 缩略图可能显示的URLyour-domain.tld/2014/a-wordpress-post/thumb/123/. 最后一部分上的数字表示每个缩略图的ID。端点通常添加在init:

add_action( \'init\', \'wpse_131753_add_thumb_endpoint\' );
function wpse_131753_add_thumb_endpoint() {

    add_rewrite_endpoint( \'thumb\', EP_PERMALINK | EP_PAGES );
}
现在,您需要更改WordPress呈现库短代码的方式。有一个过滤器post_gallery. 它绕过了名为gallery_shortcode() 定义于wp-includes/media.php.

让我们查看一些代码:

add_filter( \'post_gallery\', \'wpse_131753_gallery_view\', 10, 2 );
function wpse_131753_gallery_view( $output, $shortcode_attributes ) {

    $default_attributes = array(
        \'show-thumbnails\' => \'\',
        \'order\'           => \'ASC\',
        \'orderby\'         => \'menu_order ID\',
        \'id\'              => $post ? $post->ID : 0,
        \'itemtag\'         => \'dl\',
        \'icontag\'         => \'dt\',
        \'captiontag\'      => \'dd\',
        \'columns\'         => 3,
        \'size\'            => \'thumbnail\',
        \'include\'         => \'\',
        \'exclude\'         => \'\',
        \'link\'            => \'\'
    );
    $atts = shortcode_atts( $default_attributes, $shortcode_attributes, \'gallery\' );
    $current_thumb_ID = get_query_var( \'thumb\' );
    // build your gallery markup here using
    // $atts[ \'show-thumbnails\' ] and 
    // $current_thumb_ID
    // to defer between varous outputs

    if ( $current_thumb_ID ) {
        // here you may want to show the compltete gallery
    } else {
        // and here you may want to show the thumbs in 
        // $atts[ \'show-thumbnails\' ]

        // to link to the detailed view use this:
        $permalink = untrailingslashit( get_permalink( get_the_ID() ) ); 
        $thumb_link = $permalink . \'/thumb/\' . $thumb_ID; 
        // where $thumb_ID is one of the IDs in your atts.
    }
    return $output;
}
该函数应该查找默认使用的gallery快捷码属性,并根据您的想法构建html,在没有给定端点或单击了特定缩略图(端点包含单击缩略图的ID)时,它是否应该只显示三个缩略图。enpoint的值存储在查询变量中:get_query_var( \'thumb\' ).

结束

相关推荐

How to find installed plugins

我一直在寻找WordPress网站上安装的插件列表。虽然我找到了一种方法,“http wp plugins.nse”暴力脚本,但我不知道如何使用这个脚本。如果有人知道任何方法,请分享。