Пачка полезных сниппетов для блога. Часть 30

Изменяем текст в метабоксе Опубликовать для произвольных типов записей

Добавление этого сниппета в файл functions.php вашей темы WordPress изменит текст в в метабоксе Опубликовать для определенных произвольных типов записей. Этот пример сделан для типа записи События, но тип можно изменить на то, что вам понадобится.


function wps_translation_mangler($translation, $text, $domain) {
        global $post;
    if ($post->post_type == 'events') {
        $translations = &get_translations_for_domain( $domain);
        if ( $text == 'Запланировано на: <b>%1$s</b>') {
            return $translations->translate( 'Дата события: <b>%1$s</b>' );
        }
        if ( $text == 'Опубликовано в: <b>%1$s</b>') {
            return $translations->translate( 'Дата события: <b>%1$s</b>' );
        }
        if ( $text == 'Опубликовать <b>немедленно</b>') {
            return $translations->translate( 'Дата события: <b>%1$s</b>' );
        }
    }
    return $translation;
}
add_filter('gettext', 'wps_translation_mangler', 10, 4);

Выводим изображение граватара в качестве фавиконки

Добавление этого сниппета в файл functions.php вашей темы WordPress выведет ваш граватар в качестве фавиконки блога. Перейдите в ваше меню настроек для обновления дефолтного admin_email.


function gravatar_favicon() {
        $GetTheHash = md5(strtolower(trim(get_bloginfo('admin_email'))));
        return 'http://www.gravatar.com/avatar/' . $GetTheHash . '?s=16';
}
function favicon() {
        echo '<link rel="Shortcut Icon" type="image/x-icon" href="'.gravatar_favicon().'" />';
}
add_action('wp_head', 'favicon');

Увеличиваем высоту поля Цитата

Добавление этого сниппета в файл functions.php вашей темы WordPress увеличит высоту поля Цитата в окне редактирования записи.

add_action('admin_head', 'excerpt_textarea_height');
function excerpt_textarea_height() {
        echo'
        <style type="text/css">
                #excerpt{ height:500px; }
        </style>
        ';
}

Добавляем классы к ссылкам Предыдущая/Следующая

Добавление этого сниппета в файл functions.php вашей темы WordPress добавит произвольный класс CSS к ссылкам Предыдущая/Следующая/

function add_class_next_post_link($html){
    $html = str_replace('<a','<a class="next"',$html);
    return $html;
}
add_filter('next_post_link','add_class_next_post_link',10,1);
function add_class_previous_post_link($html){
    $html = str_replace('<a','<a class="prev"',$html);
    return $html;
}
add_filter('previous_post_link','add_class_previous_post_link',10,1);

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

Добавление этого сниппета в файл functions.php вашей темы позволит вам вывести количество комментариев для любой записи путем простого использования шорткода [comments id=»23″ ], при этом заменив ID на ID записи, для которой нужно вывести кол-во комментов.

function comments_shortcode($atts) {
        extract( shortcode_atts( array(
                'id' => ''
        ), $atts ) );
        $num = 0;
        $post_id = $id;
        $queried_post = get_post($post_id);
        $cc = $queried_post->comment_count;
                if( $cc == $num || $cc > 1 ) : $cc = $cc.' Comments';
                else : $cc = $cc.' Comment';
                endif;
        $permalink = get_permalink($post_id);
        return '<a href="'. $permalink . '" class="comments_link">' . $cc . '</a>';
}
add_shortcode('comments', 'comments_shortcode');

Шорткод:

[comments id="23" ]

Выводим всех подписчиков блога в неупорядоченный список

Добавление этого сниппета в файл functions.php выведет всех подписчиков (Роль на сайте) в неупорядоченный список.

<ul>
<?php
    $blogusers = get_users('blog_id=1&orderby=nicename&role=subscriber');
    foreach ($blogusers as $user) {
        echo '<li>' . $user->display_name . '</li>';
    }
?>
</ul>

Отправляем email уведомление при обновлении профиля

После добавления этого сниппета в файл functions.php ВП будет отправлять email уведомление пользователю после того, как он обновит свой профиль.

function user_profile_update( $user_id ) {
        $site_url = get_bloginfo('wpurl');
        $user_info = get_userdata( $user_id );
        $to = $user_info->user_email;
        $subject = "Обновление профиля: ".$site_url."";
        $message = "Hello " .$user_info->display_name . "\nВаш профиль был обновлен!\n\nСпасибо за визит\n ".$site_url."";
        wp_mail( $to, $subject, $message);
}
add_action( 'profile_update', 'user_profile_update', 10, 2);

Добавляем произвольные типы записей в wp_get_archives()

Добавление этого сниппета в файл functions.php позволит использовать функцию wp_get_archives для вывода ваших произвольных типов записей. Не забудьте изменить название этой самой записи в строке 6.

add_filter( 'getarchives_where' , 'ucc_getarchives_where_filter' , 10 , 2 );
function ucc_getarchives_where_filter( $where , $r ) {
        $args = array( 'public' => true , '_builtin' => false );
        $output = 'names'; $operator = 'and';
        $post_types = get_post_types( $args , $output , $operator );
        $post_types = array_merge( $post_types , array( 'post','CUSTOM_POST_TYPE_NAME' ) );
        $post_types = "'" . implode( "' , '" , $post_types ) . "'";
        return str_replace( "post_type = 'post'" , "post_type IN ( $post_types )" , $where );
}
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top