1

我讨厌将东西放入 functions.php 文件中,因此想挂接到预先存在的 WP-hook 以注册/配置我的自定义帖子类型(和分类法)。我在某处读到“模板重定向”会是一个不错的选择,但当您在管理页面上时,似乎不会触发该钩子,因此相当无用。

任何帮助,将不胜感激。

4

3 回答 3

2

你可以使用init钩子。

注册名为“book”的帖子类型的示例。

function codex_custom_init() {
    $args = array( 'public' => true, 'label' => 'Books' );
    register_post_type( 'book', $args );
}
add_action( 'init', 'codex_custom_init' );

参考:法典。

于 2012-07-07T21:47:02.140 回答
0

我正在审查我的未解决问题,它提醒我我还没有结束这个问题。Marty 的回答很有帮助,但确实指出了不同的解决方案路径。回想起来,我不确定我尝试过什么钩子,但明显的钩子是“init”,我现在正在使用它并且它有效。

这是我的流程:

  • 我的插件加载了“plugins_loaded”事件
  • 它做了一些基本的初始化,然后挂钩到“管理”挂钩
  • 当我的插件触发 'admin' 事件时,它会触发以下功能:

    function add_hooks () {
        // fire a hook that a configuration file can pick up
        do_action ( 'lg_custom_types_definition');
        // now fire hooks to register custom types
        do_action ( 'lg_custom_type_cpt_registration' );        // register
        do_action ( 'lg_custom_types_registered_post_types');
        do_action ( 'lg_custom_type_tax_registration' );        // register
        do_action ( 'lg_custom_types_registered_taxonomies');
    }
    

这种方法为我提供了一种完全解耦的方法,这意味着我可以启用“custom_types”插件,现在我已经安装了“功能”。然后我创建了一个配置插件,该插件挂钩到该功能添加的事件。

希望这可以帮助。

于 2012-07-07T21:15:23.517 回答
-1

您可以在 functions.php 中使用包含文件来包含您的所有自定义工作。

<?php 
// functions.php
include('inc/custom-functions.php');
?>

我创建了一个非常简单的页面来创建您的自定义帖子类型,您输入自定义字段所需的选项,它会吐出所需的代码以便在 wordpress 中生成它。

它位于此处:http ://martin-gardner.co.uk/wordpress-custom-post-type-generator/

例如:

  • 输入帖子类型名称:视频在菜单中选择您想要放置的位置。
  • 然后为该自定义帖子类型选择所需的选项。
  • 编辑标签,如果需要,默认情况下只使用名称,

阅读更多关于自定义帖子类型和 register_post_type @

http://codex.wordpress.org/Function_Reference/register_post_type

希望能有所帮助;)

马蒂

于 2012-06-19T13:15:21.497 回答