Ответы в темах

Просмотр 15 ответов — с 1 по 15 (всего 33)
  • Решил с помощью плагина Redirection. Не очень изящное решение, но всё же — рабочее.

    В общем, для вывода популярных постов по периодам, сделал следующее:
    взял кусок кода из плагина WP-PostViews и закинув его в functions.php изменил немного, что бы получилось следующее

    ### Function: Display Most Viewed Page/Post
    if(!function_exists('get_most_viewed_365')) {
    	function get_most_viewed_365($mode = '', $limit = 10, $chars = 0, $display = true) {
    		global $wpdb;
    		$views_options = get_option('views_options');
    		$where = '';
    		$temp = '';
    		$output = '';
    		if(!empty($mode) && $mode != 'both') {
    			$where = "post_type = '$mode'";
    		} else {
    			$where = '1=1';
    		}
    		$start_date = mktime(0,0,0,date("m"),date("d"),date("Y")-1);
    		$date_limit = "post_date BETWEEN '".date("Y-m-d", $start_date)."' AND '".current_time('mysql')."'";
    
    		$most_viewed = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE $date_limit AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");
    		if($most_viewed) {
    			foreach ($most_viewed as $post) {
    				$post_views = intval($post->views);
    				$post_title = get_the_title($post);
    				if($chars > 0) {
    					$post_title = snippet_text($post_title, $chars);
    				}
    				$post_excerpt = views_post_excerpt($post->post_excerpt, $post->post_content, $post->post_password, $chars);
    				$temp = stripslashes($views_options['most_viewed_template']);
    				$temp = str_replace("%VIEW_COUNT%", number_format_i18n($post_views), $temp);
    				$temp = str_replace("%POST_TITLE%", $post_title, $temp);
    				$temp = str_replace("%POST_EXCERPT%", $post_excerpt, $temp);
    				$temp = str_replace("%POST_CONTENT%", $post->post_content, $temp);
    				$temp = str_replace("%POST_URL%", get_permalink($post), $temp);
    				$output .= $temp;
    			}
    		} else {
    			$output = '<li>'.__('Нет записей', 'wp-postviews').'</li>'."\n";
    		}
    		if($display) {
    			echo $output;
    		} else {
    			return $output;
    		}
    	}
    }

    то есть изменил название функции и добавил

    $start_date = mktime(0,0,0,date("m"),date("d"),date("Y")-1);
    		$date_limit = "post_date BETWEEN '".date("Y-m-d", $start_date)."' AND '".current_time('mysql')."'";

    Но вот какой вопрос меня гложет: для того, что бы сделать вывод 3-х периодов, мне пришлось вставлять этот код 3 раза изменяя при этом пару строк. И всё из-за неразвитых скилов PHP.

    Помогите оптимизировать этот код. В идеале, в функции должен быть параметр или атрибут (прошу прощения за незнание терминологии), добавляя который отнималось соответствующее кол-во дней от start_date.

    Был бы очень признателен за помощь.

    Ну и с облаками тегов так ничего и не придумал. Может быть использовать фильтр на основе функции типа такой:

    function filter_where_365( $where = '' ) {
    	// за последние 365 дней
    	$where .= " AND post_date > '" . date('Y-m-d', strtotime('-365 days')) . "'";
    	return $where;
    }

    Но как это сделать?

    Ээээх, надо было учиться на программиста, а не на техника механика (((

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

    Не сочтите за наглость, но сделайте доброе дело. Помогите неопытному коллеге. )))

    Да, изначально был он (больше года назад находил). Но теперь нужно кое что другое. Спасибо за помощь

    Изначально слайдер был таким.

    <?php query_posts('showposts=4&cat=128');?>
    <div id="featured" >
        <ul class="ui-tabs-nav">
            <?php while (have_posts()) : the_post(); ?>
            <li class="ui-tabs-nav-item ui-tabs-selected" id="nav-fragment-<?php the_ID(); ?>"><a href="#fragment-<?php the_ID(); ?>"><p class="date-item">
                <?php the_time('d.m.Y'); ?><p><?php the_title(); ?></p>
            </p></a>
                <div class="prew-icon">
                    <?php $image = get_post_meta($post->ID, 'photo', true); if($image !== '') { ?>
                        <img src="/wp-content/themes/SMargelov-A/images/images_at.png" width="30" title="Есть фото" alt="Есть фото">
                    <?php } ?>
                    <?php $vidos = get_post_meta($post->ID, 'video', true); if($vidos !== '') { ?>
                        <img src="/wp-content/themes/SMargelov-A/images/video_at.png" width="30" title="Есть видео" alt="Есть видео">
                    <?php } ?>
                    <?php $sound = get_post_meta($post->ID, 'audio', true); if($sound !== '') { ?>
                        <img src="/wp-content/themes/SMargelov-A/images/music_at.png" width="30" title="Есть аудио" alt="Есть аудио">
                    <?php } ?>
                </div>
            </li>
            <?php endwhile; ?>
        </ul>
        <?php while (have_posts()) : the_post(); ?>
        <div id="fragment-<?php the_ID(); ?>" class="ui-tabs-panel ui-tabs-hide" style="">
            <a href="<?php the_permalink(); ?>">
                        <?php
                            if ( has_post_thumbnail() ) {
                            } else {
                        ?>
                        <img src="/wp-content/themes/SMargelov-A/images/slider-df.jpg" alt="">
                        <?php } ?>
    
                <?php the_post_thumbnail('slider_image'); ?>
            </a>
            <div class="info" >
            <p><a href="<?php the_permalink(); ?>" >(<?php the_time('d.m.Y'); ?>)</a></p>
            <h2><a href="<?php the_permalink(); ?>" ><?php the_title(); ?></a></h2>
            </div>
        </div>
        <?php endwhile; ?>
    </div>

    vjpo

    ну это-то я уже вставил. Спасибо.
    А вот что делать с двумя циклами?

    vjpo

    огромное спасибо. Заработало. За идею со стилями home-slider тоже спасибо. Попробую.

    Если сможете, подскажите, как оптимизировать код слайдера. Буду признателен.

    Юрий

    Да спасибо. Всё заработало.

    versusbassz

    И вам спасибо за бесплатный урок JS )))

    versusbassz

    а разве это вариант не сделает обратное от желаемого? Он уберет атрибуты только на страницах и записях. Нет?
    Мне-то нужно, что бы на страницах и записях атрибуты остались

    Сделал вот так корявенько. Всё заработало.
    (Только не смейтесь, ладно)

    if ( $('body').hasClass('single') ) {
    		} else if ( $('body').hasClass('page') ) {
    		} else{
    			$('img').each(function(){
    				$(this).removeAttr('width')
    				$(this).removeAttr('height');
    			});
    		};

    Подскажите мне, ламеру, как избавиться от else (ведь здесь достаточно одного if, правда?) и объединить проверки page и single?

    versusbassz

    Написал вот так, но скрипт не срабатывает (не удаляются атрибуты).

    if ( ! is_single() ) {
    			$('img').each(function(){
    				$(this).removeAttr('width')
    				$(this).removeAttr('height');
    			});
    		};

    Что-то я делаю не так, похоже

    versusbassz

    Спасибо за ссылку. Я так понимаю, что нужно просто устроить внутри функции проверку, и если is_page() и is_single() будут возвращать false, то запускать эту функцию?

    Проблема в том, что я, как уже говорил, очень плохо знаю программирование. Буду очень вам признателен, если вы поможете мне с этим несложным (как я подозреваю) кодом.

    Но даже если нет, всё равно, спасибо вам за помощь.

    Yui

    Всё бы хорошо, да только проблемы остаются. Так, например, сейчас на сайте стоит заглушка, которая пускает на сайт только администратора. Так вот, в админку я зайти могу, но морду увидеть — уже нет. Не тот домен, а следовательно ни черной панели управления (сверху), ни даже просто посмотреть дизайн я не могу.

    Видимо и правда, придется переносить полностью. (((

    А можно ли без перемещения, используя только редиректы в .htaccess добиться желаемого. Перемещение небезопасно да и хлопотно (слишком много файлов — слишком большая нагрузка на сервер. Падает).

    При вот этом варианте тоже не всё гладко. Админка остается в подпапке, поесть находясь на морде, ты как бы и не зарегестрированный пользователь. Что очень не удобно. Да и гугловский бот слишком много на 404 попадает.

    Надеюсь, не сильно ламерским языком объяснил.

    Спасибо

    Вопрос снят. Спасибо.
    Ларчик просто открывался.

    Просто нужно было совместить то, как выводится тэг с тем, как выводится таксономия.

    Получилось:

    elseif( is_tax('company') ) { ?>
    	<h1>Компания &quot;<?php single_term_title(); ?>&quot;</h1>
    	<?php echo term_description(); ?>

    Спасибо

Просмотр 15 ответов — с 1 по 15 (всего 33)