Полезные функции для управления пользователями
Убираем сложность пароля
function wc_ninja_remove_password_strength() { if ( wp_script_is( 'wc-password-strength-meter', 'enqueued' ) ) { wp_dequeue_script( 'wc-password-strength-meter' ); } } add_action( 'wp_print_scripts', 'wc_ninja_remove_password_strength', 100 );
Разрешение iframe и прочее
function fb_change_mce_options($initArray) { $ext = 'pre[id|name|class|style],iframe[align|longdesc| name|width|height|frameborder|scrolling|marginheight| marginwidth|src]'; if ( isset( $initArray['extended_valid_elements'] ) ) { $initArray['extended_valid_elements'] .= ',' . $ext; } else { $initArray['extended_valid_elements'] = $ext; } return $initArray; } add_filter('tiny_mce_before_init', 'fb_change_mce_options');
Разрешить пользователям использовать HTML
//включение unfiltered_html для авторов start function wph_allow_unfiltered_html() { $role = get_role('author'); $role->add_cap('unfiltered_html'); } add_action('admin_init', 'wph_allow_unfiltered_html'); //включение unfiltered_html для авторов end
Еще один способ разрешения iframe
//включение тега iframe для авторов start function wph_allow_iframe_tag($allowedposttags) { if( !current_user_can('author') ) return $allowedposttags; $allowedposttags['iframe'] = array( 'align' => true, 'width' => true, 'height' => true, 'frameborder' => true, 'name' => true, 'src' => true, 'id' => true, 'class' => true, 'style' => true, 'scrolling' => true, 'marginwidth' => true, 'marginheight' => true, ); return $allowedposttags; } add_filter('wp_kses_allowed_html', 'wph_allow_iframe_tag', 1, 1); //включение тега iframe для авторов end
Вывод таблицы-списка авторов блога
function contributors() { global $wpdb; $authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name"); foreach ($authors as $author ) { echo "
';
echo "ID);
echo "/\">";
the_author_meta('display_name', $author->ID);
echo "";
echo "
"; echo "Website: ID); echo "/\" target='_blank'>"; the_author_meta('user_url', $author->ID); echo ""; echo "
"; echo "Twitter: ID); echo "\" target='_blank'>"; the_author_meta('twitter', $author->ID); echo ""; echo "
"; echo "ID); echo "/\">Visit "; the_author_meta('display_name', $author->ID); echo "'s Profile Page"; echo ""; echo "
";
echo ""; echo "Website: ID); echo "/\" target='_blank'>"; the_author_meta('user_url', $author->ID); echo ""; echo "
"; echo "Twitter: ID); echo "\" target='_blank'>"; the_author_meta('twitter', $author->ID); echo ""; echo "
"; echo "ID); echo "/\">Visit "; the_author_meta('display_name', $author->ID); echo "'s Profile Page"; echo ""; echo "
Стили для этого примера
#authorlist ul{ list-style: none; width: 600px; margin: 0; padding: 0; } #authorlist li { margin: 0 0 5px 0; list-style: none; height: 90px; padding: 15px 0 15px 0; border-bottom: 1px solid #ececec; } #authorlist img.photo { width: 80px; height: 80px; float: left; margin: 0 15px 0 0; padding: 3px; border: 1px solid #ececec; } #authorlist div.authname { margin: 20px 0 0 10px; }
Добавление нужных метаполей в профиль пользователя
add_filter('user_contactmethods', 'my_user_contactmethods'); function my_user_contactmethods($user_contactmethods){ $user_contactmethods['telegram'] = 'Telegram Username'; $user_contactmethods['whatsapp'] = 'WhatsApp'; $user_contactmethods['ok'] = 'Профиль в OK'; return $user_contactmethods; }
Удаление ненужных метаполей в профиле пользователя
add_filter('user_contactmethods','hide_profile_fields',10,1); function true_hide_contacts( $contactmethods ) { unset($contactmethods['aim']); unset($contactmethods['jabber']); unset($contactmethods['yim']); unset($contactmethods['dribbble']); unset($contactmethods['pinterest']); unset($contactmethods['flickr']); unset($contactmethods['linkedin']); unset($contactmethods['youtube']); unset($contactmethods['twitter']); return $contactmethods; } add_filter('user_contactmethods', 'true_hide_contacts', 10, 1);