X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Сократить текст выводимый в сайд баре
zik
zik
Topic Starter сообщение 23.9.2012, 21:22; Ответить: zik
Сообщение #1


Есть плагин..в его коде нарыл код виджета
Проблема в том, что он выводит популярные посты как положено, но заголовок их слишком длинный и
переносится на вторую строчку, а это не очень красиво.
Хотелось бы сделать, что бы текст был максимум например 40символов, остальное обрезалось бы...
в PHP вообще нулевой, поэтому прошу у вас помощи.

#### WIDGET ####

function add_widget_most_liked_posts() {
    function widget_most_liked_posts($args) {
        extract($args);
        $options = get_option("most_liked_posts");
        if (!is_array( $options )) {
            $options = array(
            'title' => 'Most liked posts',
            'number' => '5'
            );
        }
        $title = $options['title'];
        $numberOf = $options['number'];
        
        global $wpdb;
    
        $output = '';
        $request = "SELECT ID, post_title FROM $wpdb->posts, $wpdb->postmeta";
        $request .= " WHERE $wpdb->posts.ID=$wpdb->postmeta.post_id";
        $request .= " AND post_status='publish' AND post_type='post' AND meta_key='_liked'";
        $request .= " GROUP BY $wpdb->postmeta.post_id ORDER BY meta_value DESC LIMIT $numberOf";
        $posts = $wpdb->get_results($request);
    
        if ($posts) {
            echo $before_widget;
            echo $before_title . $title . $after_title;
            echo '<ul>';

            foreach ($posts as $post) {
                $post_title = stripslashes($post->post_title);
                $permalink = get_permalink($post->ID);
                
                echo '<li><a href="' . $permalink . '" title="' . $post_title.'" rel="nofollow">' . $post_title . '</a></li>';
            }

            echo '</ul>';
            echo $after_widget;
        }
    }    
    register_sidebar_widget('Most liked posts', 'widget_most_liked_posts');
    
    function options_widget_most_liked_posts() {
        $options = get_option("most_liked_posts");
        
        if (!is_array( $options )) {
            $options = array(
            'title' => 'Most liked posts',
            'number' => '5'
            );
        }
        
        if ($_POST['mlp-submit']) {
            $options['title'] = htmlspecialchars($_POST['mlp-title']);
            $options['number'] = htmlspecialchars($_POST['mlp-number']);
            if ( $options['number'] > 15) { $options['number'] = 15; }
            
            update_option("most_liked_posts", $options);
        }
        ?>
        <p><label for="mlp-title"><?php _e('Title:', 'i-like-this'); ?></label><br />
        <input class="widefat" type="text" id="mlp-title" name="mlp-title" value="<?php echo $options['title'];?>" /></p>
        
        <p><label for="mlp-number"><?php _e('Number of posts to show:', 'i-like-this'); ?></label><br />
        <input type="text" id="mlp-number" name="mlp-number" style="width: 25px;" value="<?php echo $options['number'];?>" /> <small>(max. 15)</small></p>
        
        <input type="hidden" id="mlp-submit" name="mlp-submit" value="1" />
        <?php
    }
    register_widget_control('Most liked posts', 'options_widget_most_liked_posts');
}

add_action('init', 'add_widget_most_liked_posts');

####


--------------------
вэп дисаен
C вами с 2007 года
ICQ 532011
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SpaceX
SpaceX
сообщение 24.9.2012, 0:01; Ответить: SpaceX
Сообщение #2


вместо $post_title нужно mb_substr($post_title, 0, 40)
но библиотека mb должна быть подключена... если нет надо будет поизвращаться немного...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 24.9.2012, 3:08; Ответить: Electric
Сообщение #3


Вместо:
echo '<li><a href="' . $permalink . '" title="' . $post_title.'" rel="nofollow">' . $post_title . '</a></li>';

Используйте:
echo '<li><a href="' . $permalink . '" title="' . $post_title.'" rel="nofollow">' . substr($post_title, 0, 40) . '</a></li>';


Подробнее тут: http://php.su/functions/?substr


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
disiyndel
disiyndel
сообщение 24.9.2012, 3:13; Ответить: disiyndel
Сообщение #4


Если дело в красоте: http://htmlbook.ru/css/text-overflow

Плюс при на ведении можно поставить всплывающим полный тайтл.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
http://heisenbrog.com - только цифры, факты и эксперименты.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) SEO-текст на главной странице сайта и в категориях
5 boltuk 1425 26.3.2024, 21:43
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Можно ли в старый SEO текст вместо старого домена поставить новый?
3 Tutich 1215 22.3.2024, 14:47
автор: Tutich
Горячая тема (нет новых ответов) Текст для сайта на английском языке
33 D007user 18087 26.1.2022, 17:16
автор: D007
Горячая тема (нет новых ответов) Копирайтинг и рерайт: качественный сео-текст по доступной цене!
374 Sostavitel 196979 18.1.2022, 23:46
автор: Sostavitel
Открытая тема (нет новых ответов) Эффективный копирайтинг. Продающие и инфостатьи, лэндинги. Текст для презентации и видео. Студенческие работы. Наполнение сайтов с нуля
7 лет в сфере, более 77 млн знаков за спиной
1 ELECTROKATZE 3588 11.6.2021, 18:48
автор: icoder


 



RSS Текстовая версия Сейчас: 20.4.2024, 2:51
Дизайн