Skip to content

Instantly share code, notes, and snippets.

@EugeneZheleznov
Last active March 31, 2022 08:27
Show Gist options
  • Save EugeneZheleznov/1c8c96c7e3d5f59dea1bd8712fa49d24 to your computer and use it in GitHub Desktop.
Save EugeneZheleznov/1c8c96c7e3d5f59dea1bd8712fa49d24 to your computer and use it in GitHub Desktop.
[Полезные трюки WordPress] #wp

Полезные трюки WordPress

Добавляем свой логотип в пользовательской панели мониторинга

function zacompom_custom_logo() {
	echo '
	<style type="text/css">
		#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
			background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
			background-position: 0 0;
			color:rgba(0, 0, 0, 0);
		}
		#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
			background-position: 0 0;
		}
	</style>
	';
}

add_action('wp_before_admin_bar_render', 'zacompom_custom_logo');


Изменяем подвал в панели администратора WordPress

function remove_footer_admin () {
	echo '<p>Материал взят с сайта <a href="https://site.ru" target="_blank">site.ru</a></p>';
}

add_filter('admin_footer_text', 'remove_footer_admin');


Добавляем пользовательские виджеты панели управления в WordPress

add_action('wp_dashboard_setup', 'zacompom_custom_dashboard_widgets');

function zacompom_custom_dashboard_widgets() {
	global $wp_meta_boxes;

	wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
	echo '<p>Здравствуйте! Нужна помощь по сайту на wordpress - <a href="mailto:info@zacompom.ru">обращайтесь</a>. Все мои услуги вы найдете <a href="https://zacompom.ru/services" target="_blank">здесь</a></p>';
}


Динамическая дата в подвале WordPress типа 2012-2020 Все права защищены

function zacompom_copyright() {
	global $wpdb;
	$copyright_dates = $wpdb->get_results("
		SELECT
		YEAR(min(post_date_gmt)) AS firstdate,
		YEAR(max(post_date_gmt)) AS lastdate
		FROM
		$wpdb->posts
		WHERE
		post_status = 'publish'
	");
	$output = '';
	if($copyright_dates) {
		$copyright = "© " . $copyright_dates[0]->firstdate;
		if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
			$copyright .= '-' . $copyright_dates[0]->lastdate;
		}
		$output = $copyright;
	}
	return $output;
}

В нужном месте

<?php echo zacompom_copyright(); ?>


Добавление виджета в боковую панель вашей темы

Регистрируем виджет сайдбар

function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Мой сайдбар', 'text_domain' ),
		'description'   => __( 'Описание моего нового сайдбара', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );

Чтобы отобразить этот виджет в вашей теме, добавьте этот код куда вам нужно в файл sidebar.php:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
	/* <!–-Информация о боковой панели по умолчанию идет здесь–-> */
<?php endif; ?>


Добавляем нового администратора

function zacompom_admin_account(){
	$user = 'Логин';
	$pass = 'Пароль';
	$email = 'info@zacompom.ru'; //тут ваша почта
	if ( !username_exists( $user )  && !email_exists( $email ) ) {
		$user_id = wp_create_user( $user, $pass, $email );
		$user = new WP_User( $user_id );
		$user->set_role( 'administrator' );
	} 
}

add_action('init','zacompom_admin_account');

Показываем общее количество зарегистрированных пользователей
Функция подсчета пользователей

function zacompom_user_count() { 
	$usercount = count_users();
	$result = $usercount['total_users']; 
	return $result; 
} 
add_shortcode('user_count', 'zacompom_user_count');

Теперь вам просто нужно добавить этот шорткод [user_count]



Включаем выполнение шорткодов в текстовых виджетах

По умолчанию WordPress не выполняет шорткоды внутри текстовых виджетов. Чтобы исправить это, вам нужно просто добавить этот код в файл функций вашей темы.
Включение коротких кодов в текстовых виджетах

add_filter('widget_text','do_shortcode');


Добавляем классы css odd и even для комментариев

Это помогает пользователям визуализировать, где заканчивается один комментарий и начинается следующий

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';


Отключаем XML-RPC

add_filter('xmlrpc_enabled', '__return_false');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment