[Помогите] Автокликер по новостям для WP

Тема в разделе "Wordpress", создана пользователем Mitchellzzz, 22 июн 2009.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. Mitchellzzz

    Mitchellzzz Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    1
    Здравствуйте всем. У меня вот такая задачка. Мне наливают трафф, но лить его на главную страницу фигово. Скинули скриптик один он под битрикс заточен, а у меня естессно вордпресс. Может поможет кто нибудь из уважаемых форумчан, заточить его под WP. Заранее премного благодрен.
    PHP:
    <?
    //        Php-script автоматизации кликов по новостям
    //        
    //        Обрабатываются ссылки вида http://www.mysite.com/bitrix/zzzz.php
    //        Дополнительно проверяются корректность новости
    //        
    //        При включённом флаге $debug на экран выводится техническая информация.
    //        
    $debug false;
    $hostname "local";
    $username "Pupkin";
    $password "vasilii";
    $dbName "Pupkin_db";
    mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    mysql_select_db($dbName);
    $query_last =  "SELECT MAX(`ID`) FROM `b_iblock_element` WHERE `IBLOCK_ID` = 1";// WHERE `created` <= NOW()";
    $query_pre =  "SELECT MAX(`ID`) FROM `b_iblock_element` WHERE `ID` < ( SELECT MAX( `ID` ) FROM `b_iblock_element` WHERE `IBLOCK_ID` = 1) AND `IBLOCK_ID` = 1";
    $query "SELECT MAX(`coin`) FROM `b_nzc` WHERE `id` = 1";
    $res mysql_query($query) or die(mysql_error());
    $str_ID mysql_fetch_array($res);
    $nzc_ID $str_ID['MAX(`coin`)'];
    if ( 
    $nzc_ID )
        
    $res mysql_query($query_last) or die(mysql_error());
    else
        
    $res mysql_query($query_pre) or die(mysql_error());
    $str_ID mysql_fetch_array($res);
    $res_ID $str_ID['MAX(`ID`)'];
    $ip $_SERVER["REMOTE_ADDR"];
    $dt date('YmdHis');
    $str_http "http://".$_SERVER['SERVER_NAME']."/news/fin/$res_ID.html";
    if ( 
    $nzc_ID )
        
    $query "UPDATE `mysite`.`b_nzc` SET `coin` = '0' WHERE `b_nzc`.`id` =1";
    else
        
    $query "UPDATE `mysite`.`b_nzc` SET `coin` = '1' WHERE `b_nzc`.`id` =1";
    $res mysql_query($query) or die(mysql_error());
    $query "INSERT INTO`mysite`.`b_nzc` VALUES ('','','".$dt."','".$ip."','".$str_http."')";
    $res mysql_query($query) or die(mysql_error());
    $str_header "Location: http://"$_SERVER['SERVER_NAME'] ."/pages/fin/";
    header ($str_header);
    exit;
    if (
    $debug)  {
        echo 
    "<br><br>Отладочная информация:<br><br>";
        echo 
    "ID статьи - $res_ID<br>"
        echo 
    "Орёл/решка - $nzc_ID<br>"
        
    print_r($_GET);
        echo 
    "<br><br>"   ;
        
    print_r($_SESSION);
    }
     
  2. preblud

    preblud Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    39
    Симпатии:
    17
    т.е. при переходе на адрес http://site.ru/script.php посетитель попадает на любую новость на сайте. Я правельно понял?
     
    Mitchellzzz нравится это.
  3. Mitchellzzz

    Mitchellzzz Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    1
    Совершенно верно. :thenks:
     
  4. preblud

    preblud Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    39
    Симпатии:
    17
    Код:
    <?php
    $hostname = "localhost";
    $username = "dle";
    $password = "qweqwe";
    $dbName = "dle"; 
    mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    mysql_select_db($dbName);
    $query = "SELECT id FROM `wp_posts` where `post_type`='post' and `post_status`='publish' order by RAND() limit 0,1"; 
    $res = mysql_query($query); 
    $str_ID = mysql_fetch_array($res);
    header ("Location: http://".$_SERVER['SERVER_NAME']."/?p=".$str_ID['id']); 
    ?>
    Это самый простой вариант. Работать будет и с ЧПУ и без. Но если всё-таки нужны ссылки ЧПУ, то это гораздо сложнее, всё зависит от вида ссылок.
     
    Mitchellzzz нравится это.
  5. Mitchellzzz

    Mitchellzzz Создатель

    Регистр.:
    7 янв 2009
    Сообщения:
    47
    Симпатии:
    1
    Ну нету слов! Огроменный респект! А можно например добавить так, что бы сначала был заход на главную страницу, а потом редирект на рендомную новость (без задержек) т.е. путь mysite.ru -> ипотом сама новость любая вылетала. Извините за наглость. И спасибо еще раз очень помогли. (посмотрите личку)

    ---------- Post added at 19:26 ---------- Previous post was at 18:20 ----------

    $ref=$ - тут наверное надо добавить ?
     
  6. preblud

    preblud Создатель

    Регистр.:
    17 дек 2008
    Сообщения:
    39
    Симпатии:
    17
    в скрипте меняем последнюю строку на
    Код:
    header ("Location: http://".$_SERVER['SERVER_NAME']."/?view=".$str_ID['id']); 
    в файл function.php темы добавим
    Код:
    function redirect_head( $url ) {
    	echo '<meta HTTP-EQUIV="Refresh" CONTENT="5;'.get_permalink( $_REQUEST['view'] ).'">';
    }
    function redirect_footer() {
    	exit('<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL='.get_permalink( $_REQUEST['view'] ).'"></head></html>');
    }
    function redirect_handler() {
    	if ( isset( $_REQUEST['view'] ) ) {
    		// один из вариантов раскоментировать какой понравится больше
    		//add_action('wp_head', 'redirect_head' );
    		//add_action('wp_footer', 'redirect_footer' );
    		//exit('<html><head><META HTTP-EQUIV="Refresh" CONTENT="0; URL='.get_permalink( $_REQUEST['view'] ).'"></head></html>');
    	}
    }
    add_action('init', 'redirect_handler');
    не забудьте раскомментировть один из вариантов
     
    Mitchellzzz нравится это.
Статус темы:
Закрыта.