我在David Walsh的post上找到了一段关于在用户联系表单上添加自定义字段的代码。但这是在function.php中完成的。我想在我的插件被激活时完成相同的操作。我发现很难在激活钩子上调用add_filter并在wordpress文档中找到另一个片段。我合并了他们并尝试了下面这段代码,但我的插件安装失败了。我知道有些事情是错的,但无法找出答案。
<?php
function modify_contact_methods($profile_fields) {
// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';
// Remove old fields
unset($profile_fields['aim']);
return $profile_fields;
}
/* Main Plugin File */
function my_plugin_activate() {
add_filter('user_contactmethods', 'modify_contact_methods');
}
register_activation_hook( __FILE__, 'my_plugin_activate' );
function load_plugin() {
if ( is_admin() && add_filter('user_contactmethods' ) == 'modify_contact_methods' ) {
delete_option( 'Activated_Plugin' );
/* do stuff once right after activation */
// example: add_action( 'init', 'my_init_function' );
}
}
add_action( 'admin_init', 'load_plugin' );
答案 0 :(得分:0)
如果您希望在激活插件后使其工作并在激活后永久工作,您可以使用以下内容;
<?php
/*
Plugin Name: Simple Plugin
Plugin URI: http://huseyinbabal.net
Description: Simple plugin
Version: 0.1
Author: Hsüseyin BABAL
Author URI: http://huseyinbabal.net
*/
function modify_contact_methods($profile_fields) {
// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';
// Remove old fields
unset($profile_fields['aim']);
return $profile_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');