Читаю вас ребята (несколько страниц) и офигеваю, вы тут чё, социализм строить собрались? :)
какие нафиг профсоюзы, какие швейцарские турки с толстяком в объединении!? все владельцы ФО тупо набивают себе карман пока есть возможность и ничего с этим не поделать, ни кто ни с кем не будет объединяться, каждый ФО практически такой же враг соседнему ФО, как тот же адалткинг со всей копирастией.
ФО биз к сожалению себя изживает, но как говорится - свято место, пусто не бывает, в любом случае придумаем что то новое вместо ФО, копирасты с пидарастами в обломе по любому останутся, потому что это интернет :)
p.s. обычно я здесь редко пишу, просто накипело :)
SeVlad: Теперь вроде задача ясна, но.. сходу не подскажу, надо думать, а у меня сегодня не тот день ;)..
Мб кто-то другой поможет. Задачка ж интересная (такие в топике большая редкость) :)
SeVlad: Вот теперь почти понятно ;) (но как делать - ща думалка не хочет работать)
Только теперь возникает след. вопрос: 20 - по каким критериям отбирать?
Что надо вместо случайной сортировки (какой критерий) - не понимаю.
К тому же... array_rand() во втором коде вычисляется на основании $args, который в свою очередь при формировании учитывает orderby :)
ну вобщем нужно чтоб сортировало рандомно из массива, допустим на 20 постов, предварительно делало выборку по id, а уже потом из полученного выводило ссылки на посты рандомом, короче чтоб не всю таблицу сортировало, а только эту выборку из 20 последних id, вот нашёл на хабре habrahabr.ru/post/132817/
<?php
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
$args=array(
'category__in' => $category_ids,
'post__not_in' => array($post->ID),
'orderby'=> 'rand', //sort by random
'showposts'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
// Rest is the same as the previous code
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<b>Related Posts:</b><p>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a><br />
<?php
}
echo '</p>';
}
wp_reset_query();
}
?>
подскажите, как в верхнем коде заменить 'orderby'=> 'rand' на что то типа
function show_random_posts_optimized($count = 3) {
$start = microtime(true);
тоже на адалт блоге пошатнуло не хило траф с гугла, что они там творят!
так же проверил несколько других блогов схожих по тематике, у всех подобная ситуация.
покупных ссылок нет.
в "новом" гугле нет места адалту похоже.
поиск от ddg / что это значит?
В google уже искал, ничего интересного.
извиняюсь что встреваю, возможно это https://duckduckgo.com/
тоже бьюсь с гуглом уже не первый месяц, никак не получается поднять сайт в выдаче, чем больше стараюсь, тем хуже результат :)
...........
Читаю вас ребята (несколько страниц) и офигеваю, вы тут чё, социализм строить собрались? :)
какие нафиг профсоюзы, какие швейцарские турки с толстяком в объединении!? все владельцы ФО тупо набивают себе карман пока есть возможность и ничего с этим не поделать, ни кто ни с кем не будет объединяться, каждый ФО практически такой же враг соседнему ФО, как тот же адалткинг со всей копирастией.
ФО биз к сожалению себя изживает, но как говорится - свято место, пусто не бывает, в любом случае придумаем что то новое вместо ФО, копирасты с пидарастами в обломе по любому останутся, потому что это интернет :)
p.s. обычно я здесь редко пишу, просто накипело :)
Теперь вроде задача ясна, но.. сходу не подскажу, надо думать, а у меня сегодня не тот день ;)..
Мб кто-то другой поможет. Задачка ж интересная (такие в топике большая редкость) :)
вот здесь www.simplecoding.org/wordpress-vybor-sluchajnyx-postov.html#comment-791772688 мне подсказали как можно сделать
Первый запрос ваш. Но в его параметры нужно:
1) добавить 'fields' => 'ids',
2) убрать 'orderby'=> 'rand'
3) изменить 'showposts'=>-1
В результате получите массив с id нужных постов.
Затем с помощью array_rand случайным образом сортируете этот массив и выбираете из него первые 5 id-шников.
Вторым запросом получаете посты с этими id.
но мне не хватает знания php как это всё правильно сделать
Вот теперь почти понятно ;) (но как делать - ща думалка не хочет работать)
Только теперь возникает след. вопрос: 20 - по каким критериям отбирать?
последние 20 id, с категории
Что надо вместо случайной сортировки (какой критерий) - не понимаю.
К тому же... array_rand() во втором коде вычисляется на основании $args, который в свою очередь при формировании учитывает orderby :)
ну вобщем нужно чтоб сортировало рандомно из массива, допустим на 20 постов, предварительно делало выборку по id, а уже потом из полученного выводило ссылки на посты рандомом, короче чтоб не всю таблицу сортировало, а только эту выборку из 20 последних id, вот нашёл на хабре habrahabr.ru/post/132817/
был вот такой код:
код неполный так и не смог разобраться как к нему прикрутить выборку по категориям
Я не понял на что.
$random_posts_ids = get_posts($args);
$rnd_posts = array_rand($random_posts_ids, $count);
вот типа такого, вместо RAND() не могу разобраться куда это прописать, в пхп не рублю
подскажите, как в верхнем коде заменить 'orderby'=> 'rand' на что то типа
function show_random_posts_optimized($count = 3) {
$start = microtime(true);
$args = array(
'numberposts' => -1,
'fields' => 'ids',
'post_type' => 'any',
);
$random_posts_ids = get_posts($args);
$rnd_posts = array_rand($random_posts_ids, $count);
foreach ( $rnd_posts as $post_index ) {
$id = (int)$random_posts_ids[$post_index];
$post = get_post($id);
echo '<p><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></p>';
}
$stop = microtime(true);
echo '<p>Затраченное время: '.($stop - $start).'</p>';
}
Попробуйте сделать KEY на дату - KEY post_date (post_date)
А чем Вас так Using filesort напрягает?
попробую, файлсорт в данном случае сортирует более 150к строк, процессор сервера это напрягает.