我正试图用我自己的信息保存一个自定义术语。
我尝试了挂钩:-create\\u term-created\\u term-create\\u{my\\u taxonomy}
但似乎什么都不管用。
当我保存术语时,它只会与默认的wordpress信息一起保存。当我编辑术语时,hook-edit\\u termworks finde!
实际上,我不知道为什么create\\u术语没有被激发。还有什么别的事要做吗?还有什么别的勾当吗。或者wordpress通过ajax保存术语是一个问题?
这是我如何使用钩子的代码
if ( ! defined ( \'ABSPATH\' ) ) {
exit;
}
class my_term_class {
public function __construct() {
add_action( \'create_term\', array( $this, \'save_my_fields\' ), 10, 3 );
add_action( \'edit_term\', array( $this, \'save_my_fields\' ), 10, 3 );
//...
}
public function save_my_fields( $term_id, $tt_id = \'\', $taxonomy = \'\' ) {
write_log("this log is only written by edit_term!");
//...
}
}
new my_term_class();
编辑:我为我的帖子类型创建了一个全新的分类法。但还是一样的问题。
这里是我创建分类的代码:
register_taxonomy("cstesttaxonomy",
array(\'myposttype\'),
array(
"label" => _n(\'Testtaxonomie\', \'Testtaxonomies\', 2, \'cs-poedit\'),
\'public\' => false,
\'labels\' => array(
\'name\' => _n(\'Testtaxonomie\', \'Testtaxonomies\', 2, \'cs-poedit\'),
\'sigular_name\' => _n(\'Testtaxonomie\', \'Testtaxonomies\', 1, \'cs-poedit\'),
\'menu_name\' => _n(\'Testtaxonomie\', \'Testtaxonomies\', 1, \'cs-poedit\'),
\'edit_item\' => __(\'Edit testtax\', \'cs-poedit\'),
\'view_item\' => __(\'View testtax\', \'cs-poedit\'),
\'update_item\' => __(\'Update testtax\', \'cs-poedit\'),
\'add_new_item\' => __(\'Add new testtax\', \'cs-poedit\'),
// \'new_item_name\' => \'Optionsbezeichnung\',
\'popular_items\' => NULL,
),
"hierarchical" => false,
"singular_label" => _n(\'Testtaxonomie\', \'Testtaxonomies\', 1, \'cs-poedit\'),
\'rewrite\' => true,
\'show_ui\' => true,
\'show_in_nav_menus\' => true,
\'show_admin_column\' => true,
)
);
然后,我将此分类的管理视图添加到我的管理菜单:
private function initAdminHooks() {
add_action( \'admin_menu\', array($this, \'initAdminMenu\'));
}
public function initAdminMenu() {
add_menu_page(\'MyMenu\', \'MyMenu\', \'edit_posts\', \'cs_mymenu\', \'show\', plugins_url(\'myplugin/myicon_16x16.ico\'), 3);
//...
add_submenu_page(\'cs_mymenu\', _n(\'TestTax\', \'TestTax\', 2, \'cs-poedit\'),_n(\'TestTax\', \'TestTaxes\', 2, \'cs-poedit\'), \'manage_options\', \'edit-tags.php?taxonomy=cstesttaxonomy&post_type=myposttype\', false);
}
然后在administration视图中,我想添加一个新的分类法,在保存分类法时,我想写一个日志(如果这样做有效,我想向分类法添加自己的字段,并将自定义值保存到自定义数据库表)
我的类可以做到这一点并处理save方法:
if ( ! defined ( \'ABSPATH\' ) ) {
exit;
}
class RS_IB_MyTest {
public function mytest1( $term_id = 0, $tt_id =\'\') {
write_log("Stest1");
}
public function mytest2( $term_id, $tt_id =\'\',$asd = \'\' ) {
write_log("Stest2");
}
public function __construct() {
write_log("construct");
add_action( \'create_cstesttaxonomy\', array($this, \'mytest1\'), 10, 2 );
add_action( \'edit_term\', array( $this, \'mytest2\' ), 10, 3 );
}
}
new RS_IB_MyTest();
但仍然只有“edit\\u term”钩子中的方法被正确激发。