+7(982) 597-7179

WordPress сниппеты

5 мин. на прочтение

Данная статья является продолжением серии статей о сниппетах. Теперь мы рассмотрим сниппеты wordpress. Напоминаю, что статья будет постоянно пополняться. Советую пересматривать ее и по возможности в комментариях исправлять ошибки и добавлять новые.

 

Работа с комментариями

/*разрешить использовать шорткоды в комментах*/
add_shortcode('spoiler', 'hyper_spoiler');

Работа с записями

/*добавить свой текст в конец или начало записи*/
//добавление своего текст после записи start
function wph_custom_content($content){
if (is_single()) {	
    $content .= '<p>Текст после записи.</p>';
}
    return $content;
}
add_filter('the_content', 'wph_custom_content');
//добавление своего текст после записи end

//добавление своего текст до записи start
function wph_custom_content($content){
if (is_single()) {	
    $temp = '<p>Текст до записи.</p>';
    $content = $temp . $content;
}
    return $content;
}
add_filter('the_content', 'wph_custom_content');
//добавление своего текст до записи end
/*подсчет просмотров*/
<pre class="brush: php; gutter: true">function setPostViews( $postID ) {
    $count_key = &#039;post_views_count&#039;;
    $count     = get_post_meta( $postID, $count_key, true );
    if ( $count == &#039;&#039; ) {
        $count = 0;
        delete_post_meta( $postID, $count_key );
        add_post_meta( $postID, $count_key, &#039;0&#039; );
    } else {
        $count ++;
        update_post_meta( $postID, $count_key, $count );
    }
}

function getPostViews( $postID ) {
    $count_key = &#039;post_views_count&#039;;
    $count     = get_post_meta( $postID, $count_key, true );
    if ( $count == &#039;&#039; ) {
        delete_post_meta( $postID, $count_key );
        add_post_meta( $postID, $count_key, &#039;0&#039; );

        return &quot;0&quot;;
    }

    return $count;
}

function get_PostViews($post_ID){

    $count_key = &#039;post_views_count&#039;;

    $count = get_post_meta($post_ID, $count_key, true);

    return $count;

}

function post_column_views($newcolumn){

    $newcolumn[&#039;post_views&#039;] = __(&#039;Просмотры&#039;);

    return $newcolumn;

}

function post_custom_column_views($column_name, $id){

    if($column_name === &#039;post_views&#039;){

        echo get_PostViews(get_the_ID());

    }

}

add_filter(&#039;manage_posts_columns&#039;, &#039;post_column_views&#039;);

add_action(&#039;manage_posts_custom_column&#039;, &#039;post_custom_column_views&#039;,10,2);


/*
 * ЭТО ВСТАВИТЬ В ЦИКЛ loop В single.php
&amp;lt;?php setPostViews(get_the_ID()); //подсчет просмотров?&amp;gt;
*/

 /*убираем квадратные скобки на в превью текста*/
add_filter(&#039;excerpt_more&#039;, function($more) {
return &#039;...&#039;;
});

/*запретить индексирование страниц вложений*/
function wph_noindex_for_attachment() {
    if(get_post_mime_type()!= false) {
        echo &#039;&lt;meta name=&quot;robots&quot; content=&quot;noindex, nofollow&quot; /&gt;&#039;.PHP_EOL;
    }
}
add_action(&#039;wp_head&#039;, &#039;wph_noindex_for_attachment&#039;);

Работа с категориями

// убираем из url хлебных крошек слово category
add_filter('category_link', create_function('$a', 'return str_replace("category/", "", $a);'), 9999);

Работа с редактором

/*вернуть кнопки «Подчеркнутый» и «По ширине» в редактор*/
function wph_restore_buttons($buttons) {	
    $buttons[] = 'underline';
    $buttons[] = 'alignjustify';
    return $buttons;
}
add_filter('mce_buttons_2', 'wph_restore_buttons');  

Работа с картинками

/*автоматически добавить атрибут lightbox ссылкам на картинки*/
function wph_auto_add_rel_lightbox($content) {
    $pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
    $replacement = '<a$1href=$2$3.$4$5 rel="lightbox"$6>';
    $content = preg_replace($pattern, $replacement, $content);
    return $content;
}
add_filter('the_content', 'wph_auto_add_rel_lightbox');

/* микроразметка изображений */
function micro_image($content) {
global $post;
$pattern = "&lt;img";
$replacement = '&lt;img itemprop="image"';
$content = str_replace($pattern, $replacement, $content);
return $content;
}
add_filter('the_content', 'micro_image');
/*Как автоматически заполнять поля alt, caption и description при загрузке файлов?*/
function wph_auto_alt_title_caption($attachment_ID) {
 
    $filename   = $_REQUEST['name'];
    $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);
    $withoutExt = str_replace(array('-','_'), ' ', $withoutExt);
 
    $my_post = array(
        'ID'           => $attachment_ID,
        'post_excerpt' => $withoutExt,  //подпись
        'post_content' => $withoutExt,  //описание
    );
    wp_update_post($my_post);
 
    //атрибут alt
    update_post_meta($attachment_ID, '_wp_attachment_image_alt', $withoutExt);
}
add_action('add_attachment', 'wph_auto_alt_title_caption');



Работа с галереей

/*убераем в галереи перенос строк*/
add_filter( 'the_content', 'remove_br_gallery', 11, 2);
function remove_br_gallery($output) {
    return preg_replace('/<br style=(.*)>/mi','',$output);
}

Работа с комментариями

//убираем поле сайт из комментов
function remove_comment_fields($fields) {
	unset($fields['url']);
	return $fields;
}
add_filter('comment_form_default_fields', 'remove_comment_fields');

//перенаправление на /thank-you-post/ после комментирования start
function wph_redirect_after_comment(){
    wp_redirect('/thank-you-post/');
    exit();
}
add_filter('comment_post_redirect', 'wph_redirect_after_comment');
//перенаправление на /thank-you-post/ после комментирования end

Работа с административной панелью

/*поменять логотип WordPress на странице авторизации*/
function wph_login_logo() {
    echo "
    <style>
    body.login #login h1 a {
        background: url('".get_bloginfo('template_url')."/images/logo-login.png') no-repeat scroll center top transparent;
        height: 77px;
        width: 320px;
    }
    </style>
    ";
};
add_action('login_head', 'wph_login_logo');
//замена картинки логотипа на странице авторизации end
 
//замена ссылки логотипа start
function wph_login_link() {
    return 'https://www.wphook.ru';
}
add_filter('login_headerurl','wph_login_link');
//замена ссылки логотипа end
 
//замена title логотипа по умолчанию start 
function wph_login_title() {
    return 'Свой собственный тултип';
}
add_filter('login_headertitle', 'wph_login_title');
/*создать свой административный виджет в консоли*/
function wph_admin_widget() {
?&gt;
    &lt;ol&gt;
    &lt;?php
    global $post;
    $args = array(&#039;numberposts&#039; =&gt; 5);
    $myposts = get_posts($args);
    foreach($myposts as $post) :
        setup_postdata($post); ?&gt;
        &lt;li&gt; (&lt;? the_date(&#039;d.m.Y&#039;); ?&gt;) &lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;
        &lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;
    &lt;?php endforeach; ?&gt;
    &lt;/ol&gt;
&lt;?php
}
function wph_add_recent_posts_widget() {
    wp_add_dashboard_widget(&#039;wph_admin_widget&#039;, &#039;Последние записи&#039;, &#039;wph_admin_widget&#039;);
}
add_action(&#039;wp_dashboard_setup&#039;, &#039;wph_add_recent_posts_widget&#039;);

Кэш

При каждом обновлении файла будет меняться ее версия и теперь не надо каждый раз нажимать ctrl+f5

function enqueue_versioned_script( $handle, $src = false, $deps = array(), $in_footer = false ) {
	wp_enqueue_script( $handle, get_template_directory_uri() . $src, $deps, filemtime( get_template_directory() . $src ), $in_footer );
}
function enqueue_versioned_style( $handle, $src = false, $deps = array(), $media = 'all' ) {
	wp_enqueue_style( $handle, get_template_directory_uri() . $src, $deps = array(), filemtime( get_template_directory() . $src ), $media );
}

function themename_scripts() {
	enqueue_versioned_style( 'themename', '/style.css' );
	enqueue_versioned_script( 'themename', '/js/scripts.js', array( 'jquery'), true );
}
 
add_action( 'wp_enqueue_scripts', 'themename_scripts' );


Читайте также:

Приглашаем поучавствовать в обсуждении статьи:

Комментариев 0