Wordpress - 在插件激活时编辑仪表板页面

时间:2014-03-29 12:56:04

标签: php wordpress-plugin

我在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' );

1 个答案:

答案 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');