【问题标题】:Wordpress Custom Pages or Something Else?WordPress 自定义页面还是其他?
【发布时间】: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 一样简单?

我不想陷入不良做法。

【问题讨论】:

    标签: php wordpress web content-management-system


    【解决方案1】:

    1) 您可以使用 WordPress 默认的Page Templates。您将拥有文件page-index.phppage-about.php,它们将作为模板出现在属性元框中。

    2) 或者您可以依赖自定义元字段和框,制作您自己的个人元框,就像默认属性一样。这是通过add_meta_boxget_post_metaupdate_post_meta 完成的。检查 WordPress 答案中的 following results
    但是,长话短说,即使知道如何使用这些,我更喜欢使用 Advanced Custom Fields 来处理它,因为它是一个维护良好且功能丰富的插件。

    使用自定义元框,只需从预配置的下拉列表(indexabout)和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.phpexample.com/wp-content/themes/YOUR-THEME/content-about.php


    方法 1 直截了当。方法 2 可以微调更多细节。可以将两者结合使用。

    【讨论】:

    • 感谢您的回复。事后看来,这似乎过于复杂,手动编码会容易得多,并与非常简单的自定义 CMS 进行一些集成。不过,我可能会将您的方法用于未来的项目。 +投票。
    猜你喜欢
    • 1970-01-01
    • 2018-07-10
    • 2019-04-07
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2013-10-10
    • 2014-04-23
    相关资源
    最近更新 更多