钩子文档

user_contactmethods

💡 云策文档标注

概述

user_contactmethods 是一个 WordPress 过滤器,用于自定义用户个人资料页面上的联系信息字段。开发者可以通过此过滤器添加或移除用户的联系方式,如 Skype、Twitter 等。

关键要点

  • 过滤器名称:user_contactmethods,用于修改用户联系方法。
  • 参数:$methods(数组,键为联系方法,值为标签)和 $user(WP_User 对象或 null)。
  • 功能:可添加新联系方法(如设置键值对)或移除现有方法(使用 unset)。
  • 应用场景:常用于扩展用户个人资料,集成社交媒体或其他联系信息。

代码示例

add_filter( 'user_contactmethods', 'modify_user_contact_methods' );

function modify_user_contact_methods( $methods ) {
    // 添加用户联系方法
    $methods['skype']   = __( 'Skype Username' );
    $methods['twitter'] = __( 'Twitter Username' );
    // 移除用户联系方法
    unset( $methods['aim'] );
    unset( $methods['jabber'] );
    return $methods;
}

注意事项

  • 过滤器在 WordPress 2.9.0 版本引入,兼容性良好。
  • 建议使用国际化函数(如 __())处理标签,以支持多语言。
  • 可通过面向对象编程(OOP)方式集成,如示例中的类结构。

📄 原文内容

Filters the user contact methods.

Parameters

$methodsstring[]
Array of contact method labels keyed by contact method.
$userWP_User|null
WP_User object or null if none was provided.

More Information

Customize the contact information fields available to your WordPress users. Edits the available contact methods on a user’s profile page. Contact methods can be both added and removed.

Source

return apply_filters( 'user_contactmethods', $methods, $user );

Changelog

Version Description
2.9.0 Introduced.

User Contributed Notes

  1. Skip to note 3 content

    Example migrated from Codex:

    Add & remove user contact methods.

    add_filter( 'user_contactmethods', 'modify_user_contact_methods' );
    
    function modify_user_contact_methods( $methods ) {
    
    	// Add user contact methods
    	$methods['skype']   = __( 'Skype Username'   );
    	$methods['twitter'] = __( 'Twitter Username' );
    
    	// Remove user contact methods
    	unset( $methods['aim']    );
    	unset( $methods['jabber'] );
    
    	return $methods;
    }

  2. Skip to note 4 content

    Add user contact methods useing OOP.

    class WPDocs_AuthorBio {
    
        /**
         * Constructor.
         */
        public function __construct() {
            add_filter( 'user_contactmethods', array( $this, 'user_contact_methods_render' ) );
        }
    
        /**
         * User Contact information
         *
         * @param array $methods
         *
         * @return array
         */
        public function user_contact_methods_render( $methods ) : array {
    
            $methods['facebook'] = __( 'Facebook' );
            $methods['twitter']  = __( 'Twitter' );
            $methods['linkedin'] = __( 'Linkdin' );
            $methods['skype']    = __( 'Skype' );
    
            return $methods;
        }
    }
    
    new WPDocs_AuthorBio();