Полезные строки кода для WordPress

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

function wj3_blog_sidebar() {
	register_sidebar(
		array(
			'id' => 'sidebar', // уникальный id
			'name' => 'Сайдбар в блоге', // название сайдбара
			'description' => 'Перетащите сюда виджеты, чтобы добавить их в сайдбар.', // описание
			'before_widget' => '<section id="%1$s" class="widget %2$s">', // по умолчанию виджеты выводятся <li>-списком
			'after_widget' => '</section>',
			'before_title' => '<h3 class="widget-title">', // по умолчанию заголовки виджетов в <h2>
			'after_title' => '</h3>'
		)
	);
}
add_action( 'widgets_init', 'wj3_blog_sidebar' );

// вывод сайдбара (в файле sidebar.php)
<?php if(is_active_sidebar('sidebar')){ ?>
	<?php dynamic_sidebar('sidebar'); ?>
<?php } ?>

 

Откладываем загрузку dashicons

add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles()    { 
   wp_dequeue_style( 'dashicons' ); 
}

Отключаем Emojis

function disable_emojis(){
	remove_action('wp_head', 'print_emoji_detection_script', 7);
	remove_action('admin_print_scripts', 'print_emoji_detection_script');
	remove_action('wp_print_styles', 'print_emoji_styles');
	remove_action('admin_print_styles', 'print_emoji_styles');    
	remove_filter('the_content_feed', 'wp_staticize_emoji');
	remove_filter('comment_text_rss', 'wp_staticize_emoji');  
	remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
	add_filter('tiny_mce_plugins', 'disable_emojis_tinymce');
	add_filter('wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2);
}
add_action('init', 'disable_emojis');

function disable_emojis_tinymce($plugins){
	if (is_array($plugins)){
		return array_diff( $plugins, array( 'wpemoji' ) );
	}
	return array();
}

function disable_emojis_remove_dns_prefetch($urls, $relation_type){
	if ('dns-prefetch' == $relation_type){
		$emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/';
		foreach ($urls as $key => $url){
			if (strpos( $url, $emoji_svg_url_bit) !== false){
				unset($urls[$key]);
			}
		}
	}
	return $urls;
}

Ссылка на тему WordPress

<?php bloginfo('template_url'); ?>

Ссылка на главную страницу WordPress

<?php echo get_site_url(); ?>

Скрываем версию WordPress

remove_action('wp_head', 'wp_generator');

Удаляем атрибут type у скриптов и стилей

function wj3_remove_attr($tag, $handle) {
    return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
}
add_filter('style_loader_tag', 'wj3_remove_attr', 10, 2);
add_filter('script_loader_tag', 'wj3_remove_attr', 10, 2);

Отключаем верхний бар

show_admin_bar(false);

Включаем поддержку миниатюр для записей

add_theme_support('post-thumbnails');

Подключаем скрипт ответа на комментарии

function enqueue_comment_reply() {
	if( is_singular() && comments_open() && (get_option('thread_comments') == 1) ) 
		wp_enqueue_script('comment-reply');
}
add_action( 'wp_enqueue_scripts', 'enqueue_comment_reply' );

Удаляем поле «сайт» из комментариев

function wj3_remove_urlcomments( $fields ) {
	unset( $fields['url'] );
	return $fields;
}
add_filter( 'comment_form_default_fields', 'wj3_remove_urlcomments', 10, 1);

Добавляем placeholder в поля комментариев

function wj3_add_placeholder_comments($fields) {
    $commenter = wp_get_current_commenter();
    $req = get_option( 'require_name_email' );
    $aria_req = ( $req ? " aria-required='true'" : '' );
 
    $fields['author'] =
        '<p class="comment-form-author">
			<input required minlength="3" maxlength="30" placeholder="Ваше имя..." id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) .'" size="30"' . $aria_req . ' />
        </p>';
        
    $fields['email'] =
        '<p class="comment-form-email">
            <input required placeholder="Ваш e-mail..." maxlength="100" id="email" name="email" type="email" value="' . esc_attr(  $commenter['comment_author_email'] ) .'" size="30"' . $aria_req . ' />
        </p>';
        
    return $fields;
}
add_filter('comment_form_default_fields','wj3_add_placeholder_comments');

Добавляем placeholder в textarea комментариев

function wj3_add_placeholder_comments_textarea($comment_field) {
    $comment_field =
        '<p class="comment-form-comment">
        	<textarea required id="comment" placeholder="Ваш комментарий..." name="comment" cols="45" rows="8" maxlength="65525"></textarea>
        </p>';
    return $comment_field;
}
add_filter('comment_form_field_comment','wj3_add_placeholder_comments_textarea');

Переносим textarea комментариев вниз

function wj3_move_comments_textarea( $fields ) {
	$comment_field = $fields['comment'];
	unset( $fields['comment'] );
	$fields['comment'] = $comment_field;
	return $fields;
}
add_filter( 'comment_form_fields', 'wj3_move_comments_textarea' );

Удаляем H2 из шаблона пагинации

function unset_title_navigation_template( $template, $class ){
	return '
	<nav class="navigation %1$s" role="navigation">
		<div class="nav-links">%3$s</div>
	</nav>    
	';
}
add_filter('navigation_markup_template', 'unset_title_navigation_template', 10, 2 );

Удаляем role из пагинации

add_filter( 'navigation_markup_template', 'unset_role_pagination' );
function unset_role_pagination( $template ) {
    $template = '
    <nav class="navigation %1$s">
        <div class="nav-links">%3$s</div>
    </nav>';
    return $template;
}

Свой шорткод

add_shortcode( 'название-шорткода', 'func_name' );
function func_name( $atts ) {
	ob_start();
	// код для вывода
	$myvariable = ob_get_clean();
	return $myvariable;
}

 

Другие статьи

Быстрая связь