用于创建自定义帖子类型的钩子是什么?

时间:2012-06-19 13:01:37

标签: wordpress-plugin wordpress

我讨厌把东西放到functions.php文件中,因此想要挂钩到一个预先存在的WP-hook来注册/配置我的自定义post-types(和分类法)。在某处,我正在阅读“模板重定向”将是一个很好的,但看起来当你在管理页面上时,该钩子不会被触发,因此相当无用。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

您可以使用init挂钩。

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

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

参考:Codex.

答案 1 :(得分:0)

我正在审核我的公开问题,它提醒我,我没有关闭这个问题。 Marty的回答很有帮助,但确实指出了不同的解决方案路径。回想起来,我不确定我曾经尝试过哪种钩子,但显而易见的是“init”,我现在正在使用它并且它有效。

这是我的流程:

  • 我的插件加载了'plugins_loaded'事件
  • 它做了一些基本的初始化,然后挂钩到'admin'钩子
  • 当我的插件触发'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”插件,现在我已经安装了“功能”。然后我创建了一个配置插件,它挂钩了该功能添加的事件。

希望这有帮助。

答案 2 :(得分:-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

希望有所帮助;)

玛蒂