WordPress 自定义页面还是其他?
Posted
技术标签:
【中文标题】WordPress 自定义页面还是其他?【英文标题】:Wordpress Custom Pages or Something Else? 【发布时间】:2013-08-19 21:11:53 【问题描述】:我正在创建一个不是博客的网站,并且我正在为我的 CMS 使用 wordpress - 简而言之,我什至没有使用 wordpress 循环。
该网站将显示来自其他人的 API 等的图表和数据,但我被困在似乎是正确的方法上,而且我找到的所有文档都是针对博客的,或者非常模糊。
我希望能够创建页面,只使用导入语句而不是自定义模板 - 因为这些似乎仅用于文本,而不是我打算在这些页面后面拍的巨大的 php、ajax、mysql 后端。
例如:
// index.php
<?php get_header(); ?>
// Some file, like index_content.php imported into here
<?php get_custom_page_content(); ?>
<?php get_footer(); ?>
// about.php
<?php get_header(); ?>
// Some file, like about_content.php imported into here
<?php get_custom_page_content(); ?>
<?php get_footer(); ?>
这似乎很矛盾,因为如果我像下面解释的那样创建一个新的.php
文件,它会一起减损 CMS。我只是自己编辑它们,甚至没有登录到管理面板,因为如果没有直接从我的菜单项或其他东西链接,我看不到任何可以为我管理这些文件的东西。那么我为什么不只是 @include 一切并完全摆脱 Wordpress。我一定在这里遗漏了什么。
总而言之,我不知道如何构建这个问题,并且根据我的研究尝试,不知道我在寻找什么来回答这个问题。
我该如何创建上述场景,或者只是为每个命名页面创建一个新的.php
文件和我想要的@including
一样简单?
我不想陷入不良做法。
【问题讨论】:
【参考方案1】:1) 您可以使用 WordPress 默认的Page Templates。您将拥有文件page-index.php
和page-about.php
,它们将作为模板出现在属性元框中。
2) 或者您可以依赖自定义元字段和框,制作您自己的个人元框,就像默认属性一样。这是通过add_meta_box
、get_post_meta
和update_post_meta
完成的。检查 WordPress 答案中的 following results。
但是,长话短说,即使知道如何使用这些,我更喜欢使用 Advanced Custom Fields 来处理它,因为它是一个维护良好且功能丰富的插件。
使用自定义元框,只需从预配置的下拉列表(index
、about
)和page.php
主题文件中选择:
global $post;
$include = get_post_meta( $post->ID, 'include_file', true );
get_template_part( 'content', $include );
include_file
是包含下拉选择的自定义字段。您可以使用update_post_meta
或在使用 ACF 创建的字段中自行处理。
get_template_path()
是一个捆绑的 WP 函数,在此示例中将查找文件 example.com/wp-content/themes/YOUR-THEME/content-index.php
或 example.com/wp-content/themes/YOUR-THEME/content-about.php
。
方法 1 直截了当。方法 2 可以微调更多细节。可以将两者结合使用。
【讨论】:
感谢您的回复。事后看来,这似乎过于复杂,手动编码会容易得多,并与非常简单的自定义 CMS 进行一些集成。不过,我可能会将您的方法用于未来的项目。 +投票。以上是关于WordPress 自定义页面还是其他?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Wordpress 编辑器中添加自定义字段并获取其值?