Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save thefuxia/618662 to your computer and use it in GitHub Desktop.
Save thefuxia/618662 to your computer and use it in GitHub Desktop.
Manager for WordPress’ contact fields
<?php
/**
* Manage WordPress contact fields.
* Usage:
require './class.TTT_Contactfields.php';
$TTT_Contactfields = new TTT_Contactfields(
array (
'Twitter'
, 'Facebook'
, 'Xing'
, 'Country'
, 'City'
, 'Latitude'
, 'Longitude'
)
);
* @author "Thomas Scholz" http://toscho.de
* @version 1.0
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
*/
class TTT_Contactfields {
public
$new_fields
, $active_fields
, $replace
;
/**
* @param array $fields New fields: array ('Twitter', 'Facebook')
* @param bool $replace Replace default fields?
*/
public function __construct($fields, $replace = TRUE)
{
foreach ( $fields as $field )
{
$this->new_fields[ mb_strtolower($field, 'utf-8') ] = $field;
}
$this->replace = (bool) $replace;
add_filter('user_contactmethods', array( $this, 'add_fields' ) );
}
/**
* Changes the contact fields.
* @param $original_fields Original WP fields
* @return array
*/
public function add_fields($original_fields)
{
if ( $this->replace )
{
$this->active_fields = $this->new_fields;
return $this->new_fields;
}
$this->active_fields = array_merge($original_fields, $this->new_fields);
return $this->active_fields;
}
/**
* Helper function for your theme
* @return array The currently active fields.
*/
public function get_active_fields()
{
return $this->active_fields;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment