如何使用 WordPress 自定义字段显示媒体、URL 或 PDF 链接?

How do I display media, URL's or PDF links with WordPress custom fields?

我是 运行 WordPress 4.5.2,Twentysixteen,还有一个名为 'Custom Fields Template' 的插件。我希望充分利用 WordPress 的自定义字段,但除了显示带有一些基本文本数据的 UL 之外,我不知道如何让它做更多的事情。

我想知道如何:

我喜欢 'Custom Fields Template' 插件,因为它非常容易安装,使用我需要的变量进行设置,简洁轻便。以下是我到目前为止所获得的一些屏幕截图(用于赛马联合网站 - 未上线):

This is the Custom Fields Template within WordPress' page edit screen.

This is the resulting code - prints image ID only.

我对修改 WordPress 的 .php 文件很满意,但我对 PHP 不够流利,无法从头开始编写必要的功能。

如有任何帮助,我们将不胜感激。

由于您没有提供足够的细节,我只能写一个非常笼统的答案。

您找到的函数 the_meta() 不属于主题,它是由 WordPress 核心提供的,您已经注意到它不是很可定制,它的输出只能用 CSS 设置样式.

我假设这是您正在使用的插件:https://wordpress.org/plugins/custom-field-template/
基于该假设,您有以下可能性:

该插件提供简码 [cft],您可以在 post 本身的内容中使用。它的用法在插件描述中有一点描述,但不多。

如果知道您想在每个 post 或每个特定 post 类型上显示此内容,您可以为此创建一个模板文件并使用 do_shortcode() 直接调用短代码。

echo do_shortcode( "[cft]" );

如果您也不喜欢该短代码的输出,您可以address the custom fields directly

看起来插件没有显示它实际使用的字段名称,所以你需要自己找到它们。您可以通过查看数据库来完成此操作,您将在 table wp_postmeta 中找到它们,或者将一些调试输出添加到您的模板文件中,如下所示:

$meta = get_post_custom( $post->ID );
var_dump( $meta );

这将显示当前 post 中的所有自定义字段。然后,您可以使用此数组打印您的值,或使用 get_post_meta() 检索特定字段值。

最后但同样重要的是:您声明您使用的是默认主题 Twentysixteen。您不应编辑任何这些主题文件或自定义字段插件中的文件。下次更新时,您的所有更改都将丢失。相反,create a child theme 并在那里添加您的 post 模板。

我刚刚看到这篇对初学者非常有用的文章 - 它分解了我实现目标所需采取的步骤: https://perishablepress.com/wordpress-custom-fields-tutorial/

这是下载和打印小册子 link 我最终得到了(使用任何自定义字段数据,即使用和不使用插件)。

<?php $imageid = get_post_meta($post->ID, 'Brochure', true); ?>
<a href="<?php echo wp_get_attachment_url( $imageid ); ?>" target="_blank">Download &amp; Print Brochure</a>