Показывать только один раз в 10 посещений

Я хотел бы показать определенную WordPress Post одному из 10 человек. Я предполагаю, что это будет JS-решение, которое просто скрывает сообщение, используя генератор случайных чисел.

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

Solutions Collecting From Web of "Показывать только один раз в 10 посещений"

  function lsmwp_post_limter($ids, $in, $count) { $i = rand(1,$count); if ($i <= $in) { return($ids); } else return false; } function lsmWpfilter($posts){ $result = []; foreach($posts as $post){ $res = lsmwp_post_limter($post['postId'], $post['in'], $post['count']); if ($res){ $result[] = $res; } } print_r($result); return $result; } $exluded_posts = array( array('postId' => 28741 , 'in' => 2, 'count' => 3), array('postId' => 29811 , 'in' => 2, 'count' => 3), array('postId' => 31951 , 'in' => 1, 'count' => 3) ); $custom_args = array( 'post__not_in' => lsmWpfilter($exluded_posts), ); 

Этот метод позволяет мне использовать разные в / кол-во для каждого исключенного сообщения, а не ограничивать его до 1/5, а также использовать фанцитоны

Предполагая, что у вас уже есть определенные идентификаторы сообщений, которые вы хотите показать случайным образом (1 на 10), вы можете использовать:

 while ( have_posts() ) : the_post(); if($post->ID==100 OR $post->ID==101){ if (rand(1,10)==5) {the_content();} else the_content();} endwhile; 

Обратите внимание, что этот код не учитывает посетителей и выводит сообщение каждый раз, когда 10-й посетитель обращается к странице. Для этого вам нужно создать переменную и сохранить значение счетчика внутри базы данных. Однако это будет похоже на то, как вы хотели.