如何在没有插件的情况下在WordPress中创建相册库

在过去,我们已经向您展示了如何在WordPress中添加一个具有lightbox效果的图库。 该文章仅涵盖WordPress功能的表面。 最近,我们有一个客户,希望我们创建一个按月专辑组织的相册。 他们希望用户能够点击相册照片来查看该月相册中列出的所有帖子。 每张照片应该有自己的个人页面,其中包含有关摄影师及其URL的信息。 通常情况下,人们会使用NextGen Gallery或其他插件来实现类似的功能。 我们希望避免使用第三方插件,因此我们决定使用WordPress提供的核心功能来创建可行的功能。 在本文中,我们将向您展示如何在不使用插件的情况下在WordPress中创建月度相册库。

注意:这是一个相对高级的教程,它将大量的WordPress概念结合在一起。 你必须有一个WordPress和HTML / CSS的公平知识才能遵循这个。

更新:我们编写了一个新的教程,使用我们构建的插件Envira Gallery,因此它使用起来非常快速和容易。 如果您是初学者,或者根本不想处理代码,请参阅本教程。

我们正在努力做什么:

在开始之前,让我们看看最终的结果是什么样的:

当用户点击相册页面时,他们将在网格显示中看到一个档案,每个相册开始时都有一个区分封面和所有照片。 这个想法是每月有一个专辑。

相册网格

如果用户点击相册的封面照片,他们将被带到只有该相册的页面,在那里你可以给用户一些背景信息,并列出该相册中的所有照片。

如果用户点击照片,他们将被带到单张照片页面,在那里他们将看到照片的标题。 摄影师的名字和他们的网站的网址。

我们要怎么做呢?

从上面的描述中可以看到,所有需要的功能都可以使用内置的WordPress功能来完成。 我们可以把每个月份的专辑作为一个帖子,所以每张专辑可以有自己的一个页面,一些背景信息等每个图像将被视为一个附件(从而得到它自己的单一页面)。 我们将使用专辑封面照片的内置精选缩略图。 如果整个站点的用途是这个相册库,那么你可以使用默认的帖子,但是如果你有一个博客,那么这需要在一个自定义的帖子类型中创建。

让我们创建一个相册画廊

首先你要做的是创建一个特定于站点的插件(甚至是一个特定于项目的插件)。

如果您要为自己的项目使用自定义帖子类型,则应该生成代码并将其粘贴到您的站点专用插件中。 您也可以观看我们的视频,了解如何创建自定义帖子类型。

接下来,您需要做的是在WordPress中为网格显示注册额外的图像大小。

例子是:

add_image_size('album-grid',225,150,true); 

在附加的图片尺寸之后,让我们在媒体上传器中添加一些额外的字段。 这将允许您添加摄影师的名字和他们的网址,当你上传每个图像。 这就是为什么我们前两天写了一篇关于它的文章。

如何添加额外的字段到WordPress媒体上传

一旦你完成了,让我们继续前进,并添加一些相册(职位)。 上传您要附加到该相册的所有图像。 然后附上一张独特的封面照片,并将其设置为精选图片。 您可以在帖子的内容区域添加背景信息。

现在你在后端有几张专辑,让我们把代码显示出来。

假设您的自定义发布类型被称为专辑。 所以你会创建一个名为的模板文件 归档albums.php 。 粘贴标题代码,页脚代码,边栏和其他设计元素,你想要的。 创建一个后循环。 在后期循环中,我们将显示除了链接到单个图像页面的缩略图之外的所有附件。 我们还将单独添加精选的发布缩略图(专辑封面照片),并将其链接到单个帖子页面(专辑页面)。

我们决定使用list元素来设计网格图像的样式。 代码如下所示:


  • “title =” “>
  • post_type ==’albums’&& $ post-> post_status ==’publish’){
    $ attachments = get_posts(array(
    ‘post_type’=>’附件’,
    ‘posts_per_page’=> -1,
    ‘post_parent’=> $ post-> ID,
    ‘exclude’=> get_post_thumbnail_id()
    ));

    如果($附件){
    foreach($附件为$附件){
    $ class =“post-attachment mime-”。 sanitize_title($ attachment-> post_mime_type);
    $ title = wp_get_attachment_link($ attachment-> ID,’album-grid’,true);
    回声’

  • ‘。 $ title。 “
  • “;
    }

    }
    }
    ?>

    资料来源:如何获取除特色图像以外的所有附件

    您真正不用担心的主要CSS样式是.album-grid类

    .album-grid {width:225px;  height:150px; 向左飘浮;  list-style:none;  list-style-type:none;  margin:0 18px 30px 0px;} 

    这将允许每个图像适当地放置在网格中,我们将得到我们想要的样式。

    接下来你需要做的是创建一个单一的附件模板。 这将是用户将被带到的页面,以便他们可以查看每个单独的图像。 他们将在这里看到图片标题,摄影师的名字和摄影师的网址。 您可以按照我们的如何在WordPress中创建自定义单一附件模板的教程。

    不管你喜欢什么,都可以自由设计单个模板的样式。

    现在唯一剩下的就是创建一个单独的相册页面。 再次假设您的自定义发布类型称为相册,您将需要创建一个 单albums.php 文件。 复制所有的页眉,页脚,侧边栏,或任何其他设计元素,你想要的。

    循环元素基本上和我们用归档专辑模板做的事情是一样的。 在添加精选图片和附件网格之前,您需要添加相册标题和说明。 这可以通过简单地添加这样的代码来完成:

    //在此行下面插入网格代码

    达达,我们完成了。 我们只是在WordPress中创建了一个月度相册画廊,而不使用任何插件。 如果你有任何疑问,请告诉我们。