smargelov
Ответы в темах
-
Форум: Проблемы и решения
Тема: Снова про редирект из категорииРешил с помощью плагина 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>Компания "<?php single_term_title(); ?>"</h1> <?php echo term_description(); ?>
Спасибо