如何使用wordpress中的自定义post类型创建自己的事件列表

WordPress允许您使用自定义帖子类型来扩展内置功能。这里介绍了如何在没有插件的情况下实现这一点。...

使用WordPress的优点之一是它的绝对灵活性。这不仅仅适用于帖子和页面:自定义帖子类型可以将核心功能扩展到几乎任何内容。

今天让我们来看看您可以如何处理自定义POST类型,以及如何使用自定义POST类型创建事件列表的一个快速实用示例。

注意:本教程仅用于教育目的,因此您可以学习用于创建自定义帖子类型的代码。如果你真的想为你的WordPress站点提供一个很好的事件列表插件,试试开发良好的免费事件日历。

什么是wordpress中的自定义帖子类型(custom post types in wordpress)?

通常,WordPress站点由两种类型的内容组成:过时的博客文章和静态页面。我们大多数建立了WordPress博客的人都很熟悉这样一个事实,即页面应该用于“关于我”或“联系信息”,而常规的帖子则会进入你的博客。

但除此之外,如果你想添加另一种特殊的内容,而这些内容实际上并不符合博客的时间顺序,当然也不是静态的,那该怎么办?这就是自定义帖子类型的用武之地。

俱乐部或团体网站的一个相当常见的要求是有某种活动日历。一个可以应用的解决方案是创建一个单独的帖子事件类别。问题是它们会显示在主博客时间线上,我们真的应该将这两个概念完全分开。

为此,让我们创建一个名为event的新post类型,它在管理界面中有自己的单独部分。

如何在wordpress中创建自定义帖子类型

我们将通过直接调整主题文件来实现这一点。你可以通过一个插件实现同样的效果,但是为了演示这个概念和实践,直接编写它们更容易。如果您不习惯这样做,请考虑使用My自定义函数插件,它允许您非破坏性地添加代码。

https://en-gb.wordpress.org/plugins/my-custom-functi***/

打开主题的functi***.php文件,该文件存储在wp content/themes内的theme文件夹中;或者使用“我的自定义函数”插件,您可以在“设置”中找到该插件>PHP**器。在文件末尾,添加以下代码:

add_action('init', 'events_init');function events_init() { $args = array( 'labels' => array( 'name' => __('Events'), 'singular_name' => __('Event'), ), 'public' => true, 'has_archive' => true, 'rewrite' => array("slug" => "events"), 'supports' => array('thumbnail','editor','title','custom-fields') ); register_post_type( 'events' , $args );}

请确保在关闭php(?>)之前执行此操作标记,如果functi***.php文件中有。

花点时间仔细阅读代码。它声明了一些属性(比如接口的标签),以及应该如何处理URL(重写),以及此post类型支持哪些功能。例如,可以使用supports属性向自定义帖子类型添加自定义字段。

在本例中,我们声明了事件类型以支持缩略图、事件描述的内容编辑器、事件标题和自定义字段。我们还添加了has_归档,因此导航到事件页面将显示所有事件的归档,类似于博客。

就是这样,现在如果你保存你的主题并重新加载你的博客,假设你没有任何错误,你现在应该在你的管理侧边栏上看到一个新的事件部分。耶!

现在添加一些示例事件。

然后,因为这是一个事件,所以创建一个名为date的自定义字段来指示事件将发生的时间。使用mm/dd/yyyy格式。

请注意,我们需要使用自定义字段来指定事件的实际日期,而不是发布日期,因为发布日期表示通知发布的时间。由于您可能会添加将来发生的事件,因此将发布日期设置为实际事件日期将是无用的。

如果此时尝试查看事件,可能会出现404错误。这是因为WordPress需要重新生成你的永久链接URL结构来解释这个新的帖子类型。前往设置>永久链接页面,然后再次点击保存。

您现在应该能够查看单个事件帖子。请注意,URL的第一部分,在您的域名之后,是/events/。我们在这一行代码中选择了这一点:

'rewrite' => array("slug" => "events"),

自定义事件列表页面

既然你的博客里有了所有这些精彩的事件,那么把它们列在某个地方就好了。为此,我们将创建一个特殊的页面模板,这样您就可以将该页面添加到“关于”或“联系人”旁边的常规菜单项中。

因为我们已经指定事件发布类型应该有一个存档,所以您可以访问/events/查看默认值。在我的测试站点上的标准217主题上,我得到了以下信息:

定制此输出将取决于您使用的主题,涵盖整个WordPress模板系统完全超出了本文的范围。然而,在本教程中,我假设您使用的是217。

首先创建archive.php的副本,并将其重命名为archive-events.php。这是一种标准命名约定,意味着WordPress将自动使用此模板显示事件发布类型的存档。

在检查该文件后,217位作者提供了一种post格式机制,这对于我们的需要来说太复杂了:

/** Include the Post-Format-specific template for the content.* If you want to override this in a child theme, then include a file* called content-___.php (where ___ is the Post Format name) and that will be used instead.*/get_template_part( 'template-parts/post/content', get_post_format() );

注意:建议使用子主题,因为对原始主题的任何更新都将覆盖您的更改。这篇WordPress支持文章描述了为2017年版创建子主题的过程。为了简单起见,我只打算在原来的主题上工作,而不在乎我的工作是否会在以后的更新中丢失。

剪切掉整个块,然后粘贴以下内容。为了便于学习,这只是这些帖子格式模板中内容的简化副本:

<article> <header class="entry-header"><?php echo '<div class="entry-meta">'.twentyseventeen_time_link().'</div>';the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );?></header><?php if ( '' !== get_the_post_thumbnail() && ! is_single() ) : ?><div class="post-thumbnail"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?></a></div><?php endif; ?><div class="entry-content"><?php the_content(sprintf('Continue reading<span class="screen-reader-text"> "%s"</span>',get_the_title()));?></div></article>

如果再次保存并预览“事件”页面,您会注意到它现在有日期。但他们错了。它们当前显示的是发布日期,而不是事件日期。作为最后一步,让我们将其更改为活动的实际举行日期。找到生成时间的位,

twenty_seventeen_time_link()

,并将其替换为以下内容:

date('l jS F Y',strtotime(get_post_meta(get_the_ID(), 'date', true)))

这是从我们设置的post meta字段中获取日期,然后使用PHP date()函数将其格式化为更可读的格式。

下一步?

如果您对当前的web主机不满意,我们强烈建议您使用像WP Engine这样的托管WordPress主机,这是我们自己为姐妹站点使用的。否则,InMotion主机提供价格合理的计划,使用此链接时,我们的特别折扣会更便宜。

然后,请注意,当我们创建事件帖子类型时,我们已经编码了对特色缩略图的支持。使用我们的特色图片指南,发布缩略图,在事件列表存档中抓取并显示特色图片。

Subscribe to our newsletter

Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!

Click here to subscribe

  • 发表于 2021-08-05 16:18
  • 阅读 ( 152 )
  • 分类:编程

你可能感兴趣的文章

使用这8个令人惊叹的ifttt小程序,尽情享受youtube的精彩

... 7将新视频发布为wordpress帖子 ...

  • 发布于 2021-03-13 10:05
  • 阅读 ( 407 )

5互联网技能,你需要任何创造性的家庭业务

... 1从头开始构建自定义wordpress站点 ...

  • 发布于 2021-03-17 03:32
  • 阅读 ( 220 )

如何使用tumblr:tumblr初学者的12个有用提示

... Tumblr于2007年推出。最好把它描述为一个感觉像是Twitter、WordPress和Facebook的混合体的微博网站。 ...

  • 发布于 2021-03-20 04:10
  • 阅读 ( 284 )

squarespace与wordpress:哪一个适合你?

在网络托管和****领域,最大的两个名字是WordPress和Squarespace。两者都是流行的选择,为任何想运行自己网站的人提供了很多功能。但是你如何在两者之间做出决定呢? ...

  • 发布于 2021-03-20 20:13
  • 阅读 ( 233 )

用wordpress建立你的博客:终极指南

WordPress是世界上最强大的博客平台;互联网上几乎每三个站点中就有一个由WordPress提供支持。WordPress将站点内容与驱动站点的后端代码分开。这意味着您可以运行一个功能齐全的网站,而无需任何网络编程经验。 ...

  • 发布于 2021-03-21 12:15
  • 阅读 ( 302 )

wordpress中特色缩略图和图像大小的完整指南

...万语——除非它的尺寸调整得不恰当,否则会有点尴尬。WordPress包含强大的工具来调整图片和缩略图的大小,但是你需要知道如何处理它们。 ...

  • 发布于 2021-03-21 19:06
  • 阅读 ( 280 )

如何管理excel功能区:您应该知道的4个关键提示

...加命令,甚至可以创建自己的选项卡。继续读下去,学习如何。 ...

  • 发布于 2021-03-22 08:37
  • 阅读 ( 339 )

如何使用slack:declustering、formatting和customization的技巧

...序排列 科学地说:渠道和直接信息是由你如何使用Slack来组织的。你最常发信息的渠道和人会在最高层。 ...

  • 发布于 2021-03-24 11:32
  • 阅读 ( 248 )

10种最流行的在线内容管理系统

... WordPress在运行网站方面仍然很受欢迎,但也有其他CMS解决方案。其中一些可能会复制WordPress的“各行各业的杰克”方法,而另一些可能会专门化。例如,一个以投资组合为...

  • 发布于 2021-03-26 08:50
  • 阅读 ( 331 )

如何在microsoft excel中创建自定义列表

...义列表来简化数据输入。有关列表的更多帮助,请看一下如何在Excel中创建清单。

  • 发布于 2021-03-31 15:20
  • 阅读 ( 231 )
1706284
1706284

0 篇文章

相关推荐