• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Разбить текст на статью и комментарии

Статус
В этой теме нельзя размещать новые ответы.

demmy

Постоялец
Регистрация
13 Ноя 2006
Сообщения
332
Реакции
100
Есть текст в несколько абзацев. Можно ли загнать его в вордпресс сделав первый абзац новостью, а остальные абзацы комментариями?
 
Можно через XML-RPC, в админке активировать его. Пример скрипта разбивает статью на абзацы, первый абзац импортирует как новую статью в вордпрес, остальные абзацы сохраняет как комментарии.
PHP:
<?
include_once('IXR_Library.php');

ini_set('max_execution_time', '3000');
header('Content-Type: text/plain; charset=utf-8');


$post = '
Абзац (нем. Absatz — раздел, часть текста) — отрезок письменной речи, состоящий из нескольких предложений.

Абзац, обозначая своего рода «цезуру», является единицей членения, промежуточной между фразой и главой, и служит для группировки однородных единиц изложения, исчерпывая один из его моментов (тематический, сюжетный и т. д.). Выделение фразы в особый абзац усиливает падающий на неё смысловой акцент.

Абзац — малоисследованный компонент литературной формы, имеющий композиционное, сюжетно-тематическое, ритмическое значение и связанный со стилем автора. Характерны, например, краткие абзацы в импрессионистической прозе — симптомы раздробленности, афористичности мысли; или например возвращение к длинному абзацу в несколько страниц у М. Пруста, связанное со стернианской, так называемой «спиралевидной цикличностью» его изложения. Особенно выразителен абзац у А. Белого, который выделяет в особые абзацы даже отдельные части фразы, подчёркивая этим тематическую значимость, ритмическое развитие выделяемых частей.

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

Контроль висячих строк — слежение за тем, чтобы при переносе абзаца на следующую страницу не получилось одинокой строки.
';

preg_match_all('/(.+)\r\n/', $post, $a);

//тест
print_r($a);


//вордпрес сайт куда импортировать
$url = 'http://wordpress/xmlrpc.php';
//логин того кто постит
$user = 'admin';
//и пароль
$pass = 'admin';
//ид блога 1 если один сайт, если мултисайты то выбрать нужный
$blog_id = 1;

//анонимусы комментаторы, будем брать любой
$c_author = array('Амёба', 'Спаммер', 'Онотоли', 'Инфузория-туфелька');

//конвертирует html коды в текст если надо
function decode($str) {
    $str = trim(html_entity_decode($str, ENT_QUOTES, 'UTF-8'));
    return $str;
}

$client = new IXR_Client($url);
$date = new IXR_Date(date("Ymd\TH:i:s"));

//Импортируем первый абзац
$client->query('metaWeblog.newPost', $blog_id, $user, $pass,
             array('post_status' => 'publish',
                   'title' => decode('Название поста'),
                   'description'=> decode($a[1][0]),
                   //Категории должны существовать в wordpress базе, поэтому перед импортом надо создать нужные категории
                   'categories'  => array('Категория поста один', 'Категория два', 'aa'),
                   'mt_keywords'  => ('тег один, тег два, тег три'),
                   'dateCreated' => $date->IXR_Date(date("Ymd\TH:i:s"))), 1);
$p_id = $client->getResponse();

//Если заимпортирует то вернёт ид поста и можно к нему делать комментарии
if($p_id == intval($p_id)){
    echo "Post id: ".$p_id;
    
    //цикл по абзацам
    foreach($a[1] as $id=>$comm){
        //пропускаем первый
        if($id==0)continue;
        
        //если надо подождать пару секунд, тогда
        //sleep(2);
        
        //постим комментарий
        $client->query('wp.newComment', $blog_id, "", "", $p_id,
                     array(0,
                           'content' => decode($comm),
                           //автор случайный из массива
                           'author'=> decode($c_author[rand(0, count($c_author)-1)]),
                           //если надо постить сайт автора комментария, то откоментировать
                            //'author_url'=>'http://example.com',
                            'author_email' => decode('anonymous@example.com'),
                            ), 1);
        $c_id = $client->getResponse();
        
        //коммент запостили
        if(!is_array($c_id) && $c_id == intval($c_id)){
            echo ", comment id: ".$c_id;
            //одобряем комментарий
            $client->query('wp.editComment', $blog_id, $user, $pass, intval($c_id), array('status' => 'approve'), 1);
            $c_approved = $client->getResponse();
            echo ", approved";
            
        }else{
            //ошибка
            echo ", comment error on row id: ".$row_post_c['id'];
            print_r($c_id);
            exit();
        }
    }
    
}

?>
во время импорта надо отключить проверку флуда комментариев и разрешить анонимные комментарии, вложил два плагина
 

Вложения

  • import.7z
    11,3 KB · Просмотры: 10
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху