我讨厌把东西放到functions.php文件中,因此想要挂钩到一个预先存在的WP-hook来注册/配置我的自定义post-types(和分类法)。在某处,我正在阅读“模板重定向”将是一个很好的,但看起来当你在管理页面上时,该钩子不会被触发,因此相当无用。
任何帮助都将不胜感激。
答案 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”,我现在正在使用它并且它有效。
这是我的流程:
当我的插件触发'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
希望有所帮助;)
玛蒂