使用插件创建自定义 WordPress 页面

5
我想创建一个自定义页面,其中包含比赛的赛程表而不是常规内容。我已经阅读了一些WordPress文档,并了解了插件的工作原理以及如何添加管理页面来管理该页面。
要创建页面本身(并在网站上列出它),需要什么?我需要创建一个自定义模板,在其中完成大部分工作吗?我需要让插件创建页面还是从哪里开始?
此外,模板页面和插件如何互操作? WordPress是否为我提供对插件的参考变量,还是我必须手动加载它?
我想重新表达我的问题。虽然答案很有帮助,但它们并不完全符合我一直在寻找的东西。
基本上,我想要一个页面,我可以在那里控制某些模块/代码/任何内容。这意味着我不能只设置一个页面,因为那样我只能填写文本。我需要一个页面,我可以决定当我转到该页面时会发生什么,写了什么,提交了什么等等。我在PHP方面相当熟练,只是不熟悉WordPress :)
第二部分是管理员页面,我需要一个页面(或多个页面)来控制该页面的某些管理事项。
4个回答

5

目前我看到的答案都过于复杂。你应该简单地这样做:

  1. In WordPress, create a new page; title it "example" - note the slug it generates. It should be "example" as well, mimicking the title.

  2. Create a file in your active theme called page-example.php - mirroring that slug.

  3. Sandwich your custom PHP with bare-bones HTML code in page-example.php:

     <?php get_header(); ?>
    
     <!-- Your custom PHP code goes here -->
    
     <?php get_footer(); ?>
    
根据您的页面,您可能需要重新创建一些
元素,并可能添加。

Markdown 太过复杂了。在列表中的代码块前面加一个额外的缩进级别即可。 - Peter Mortensen

4

使用自定义文章类型和自定义分类法

你需要关注 自定义文章类型自定义分类法。(参见我在一个非常类似的主题上给出的 这个答案)。

公司文章类型和分类法的示例代码

使用 WordPress 3.0,您可以创建一个名为 company 的自定义文章类型,然后再创建一个或多个自定义分类法,如类别、资金和状态,以适用于该公司。以下是您可以将其放入您的主题的 functions.php 文件中的代码,以便开始工作:

register_post_type('company',
    array(
        'label'           => __('Companies'),
        'public'          => true,
        'show_ui'         => true,
        'query_var'       => 'company',
        'rewrite'         => array('slug' => 'companies'),
        'hierarchical'    => true,
        'supports'        => array(
            'title',
            'page-attributes',
            'excerpts',
            'thumbnail',
            'custom-fields',
            'editor',
            ),
        )
);

register_taxonomy('company-category', 'company', array(
    'hierarchical'    => true,
    'label'           => __('Categories'),
    'query_var'       => 'company-category',
    'rewrite'         => array('slug' => 'categories' ),
    )
);

register_taxonomy('company-status', 'company', array(
    'hierarchical'    => true,
    'label'           => __('Status'),
    'query_var'       => 'company-status',
    'rewrite'         => array('slug' => 'status' ),
    )
);

register_taxonomy('company-funding', 'company', array(
    'hierarchical'    => true,
    'label'           => __('Funding'),
    'query_var'       => 'company-funding',
    'rewrite'         => array('slug' => 'funding' ),
    )
);

你可能需要的其他文章类型:

如果你真的想克隆 Crunchbase,你需要为每个类型创建自定义文章类型(虽然我猜你想要类似的东西,但是针对不同的市场?):

  • 人员
  • 金融机构
  • 服务提供商
  • 融资轮次
  • 收购

公司列表页面

对于您公司的列表页面(例如Crunchbase上的这个页面),我可能会创建一个名为“公司”(想象一下!)的WordPress "页面",然后使用类似List Pages Shortcode的文章列表短代码插件(如果您使用该插件,您需要进行一行修改以支持自定义文章类型,就像我在这里所示的那样)。
通过该插件和修改,您可以将以下文本添加到您的“公司”页面中,它将在该页面上列出所有公司的项目符号列表,您可以使用CSS进行风格设置:
[list-pages post_type="company"]

公司特定布局

如果您需要为每个公司创建自定义布局,可以复制主题模板文件 single.php 并将其命名为 single-company.php ,然后在那里对布局进行任何修改。

用户公司提交

如果您想让人们提交公司,请考虑使用Gravity Forms会员链接;每个站点许可证39美元,物有所值)。


这是我在WordPress Development写的关于克隆Crunchbase的答案。虽然不是针对您的问题编写的,但应该非常接近,我认为无需修改即可理解如何应用它。


4

一旦插件被激活,您就可以在任何新页面上使用它。

如果我是您,我会将显示锦标赛信息的逻辑封装到一个插件中。然后我会创建一个特定于所需页面的模板页面。

您可以像创建任何页面一样创建具有自定义模板的新页面,并在WordPress菜单中选择自定义模板。如果您遵循WordPress的标准页面模板系统,则该模板将显示在“模板”菜单中。


那么我会使用插件来构建管理界面,并使用自定义页面模板从插件中提取页面本身? - Christian P.
不管你想要更改系统的任何逻辑,最好都封装在一个插件内:你不会改变WordPress的核心,而且即使WordPress更新也能保持其正常工作。话虽如此,我不明白为什么你需要一个新的管理界面来处理这种页面,但是这是可以实现的。你应该向新页面添加一些插件检测到的信息(搜索正确的过滤器),并添加所需的信息。 - Fernando Briano

1
根据您的确切需求,除非您想在网络上提供它,否则插件可能会过度。它肯定会更有用,因为它可以将登录与模板分开,但对于个人使用来说,为了完成可以通过内置函数轻松完成的事情而需要更多的工作。
像这样的东西正是WordPress 3.0+中较新的“自定义文章类型”所建立的目的。使用新功能,您可以相当容易地构建自定义提交表单,并且这些类型的提交默认情况下被保留在主循环之外,因此内容已经从普通博客文章中分离出来。您可以将特定的功能添加到WordPress使用的默认functions.php中,也可以将其分离并手动包含,无需担心“插件”通常需要的所有挂钩和操作调用。
使用自定义文章类型和模板页面的组合对于您来说应该与完整的插件一样有用,并且需要更少的总体WordPress知识来实现。我强烈建议您查看自定义文章类型所提供的功能,以下链接应该有助于您入门:

第二个链接(实际上)已经失效 - 它重定向到主页,*https://new2wp.com/*。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接