Advertisement
daniele2013

createAndAssignPost

Oct 5th, 2017
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. require( dirname(__FILE__) . '/wp-load.php' );
  4.  
  5. class WP_Edit_Util {
  6.  
  7.     static function createAndAssignPost($url, $wp_user, $wp_pass, $articles = NULL) {
  8.  
  9.         // articles['category'] e articles['title']
  10.         // PROVO AD ESEGUIRE IL LOGIN PER WORDPRESS
  11.  
  12.         // Array degli avvisi
  13.         $notice = array(
  14.             'categories_count' => 0,
  15.             'posts_count' => 0,
  16.             'category_exists' => array(),
  17.             'post_exists' => array(),
  18.             'post_has_slug' => array()
  19.         );
  20.  
  21.         // Mappa per le categorie [Nome categoria - id categoria]
  22.         $categories = array();
  23.  
  24.         // Mappa per gli articoli
  25.         $posts = array();
  26.  
  27.         // Url separati per ricavare le categorie...
  28.         $url_categories = $url . "/wp-json/wp/v2/categories";
  29.         $url_new_category = $url . "/wp/v2/categories";
  30.  
  31.         // ...e gli articoli
  32.         $url_posts = $url . "/wp-json/wp/v2/posts";
  33.         $url_new_post = $url . "/wp/v2/posts";
  34.  
  35.         // Ricavo tutte le categorie
  36.         $json_categories = file_get_contents($url_categories);
  37.         $list_categories = json_decode($json_categories, true);
  38.  
  39.         // Ricavo tutti i post
  40.         $json_posts = file_get_contents($url_posts);
  41.         $list_posts = json_decode($json_posts, true);
  42.  
  43.         // Salvo solo nome e id delle categorie
  44.         foreach ($list_categories as $item) {
  45.             array_push($categories, array('name' => $item['name'], 'id' => $item['id']));
  46.             $notice['categories_count'] += 1;
  47.         }
  48.  
  49.         // Salvo solo nome, id e categorie collegate ai post
  50.         foreach ($list_posts as $item) {
  51.             array_push($posts, array('title' => $item['title']['rendered'], 'id' => $item['id'], 'categories' => $item['categories']));
  52.             $notice['posts_count'] += 1;
  53.         }
  54.  
  55.         echo '<br>Ecco le categorie:<br>';
  56.         var_dump($categories);
  57.         echo '<br><br>Ecco i post:<br>';
  58.         var_dump($posts);
  59.  
  60.         // CATEGORIE
  61.         // Controllo che una categoria che voglio inserire esista già
  62.         foreach ($articles as $single_cat1) {
  63.  
  64.             // INIZIO DICENDO CHE LA CATEGORIA CHE VOGLIO CONTROLLARE NON ESISTE
  65.             $cat_exs = FALSE;
  66.  
  67.             $my_desc = '';
  68.             $my_slug_cat = '';
  69.             $my_cat_meta = '';
  70.  
  71.             // MI SALVO LA CATEGORIA ATTUALE DA CONTROLLARE
  72.             $cat = $single_cat1['category'];
  73.  
  74.             // CICLO SULLE CATEGORIE ESISTENTI
  75.             foreach ($categories as $single_cat) {
  76.  
  77.                 // SE LA CATEGORIA ATTUALE E' UGUALE A QUELLA CHE STO CONTROLLANDO...
  78.                 if ($cat == $single_cat['name']) {
  79.                     // AVVISO DEL FATTO CHE LA CATEGORIA CHE VOLEVO INSERIRE ESISTE GIA'
  80.                     $cat_exs = true;
  81.                     break;
  82.                 }
  83.             }
  84.             if ($cat_exs == TRUE) {
  85.                 echo '<br>' . $cat . " esiste gia'!<br>";
  86.                 array_push($notice['category_exists'], $cat);
  87.             } else {
  88.                 echo '<br>Provo ad aggiungere ' . $cat . "...<br>";
  89.                 if (isset($single_cat1['description'])) {
  90.                     $my_desc = $single_cat1['description'];
  91.                 }
  92.                 if (isset($single_cat1['cat_slug'])) {
  93.                     $my_slug_cat = $single_cat1['cat_slug'];
  94.                 }
  95.                 if (isset($single_cat1['cat_meta'])) {
  96.                     $my_cat_meta = $single_cat1['cat_meta'];
  97.                 }
  98.                 // LA CATEGORIA NON ESISTE, PER CUI PROVO AD INSERIRLA...
  99.                 $curl = curl_init($url_categories);
  100.                 $data = array(
  101.                     'name' => $cat,
  102.                     'description' => $my_desc,
  103.                     'slug' => $my_slug_cat
  104.                 );
  105.  
  106.                 $content = json_encode($data);
  107.                 curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  108.                 curl_setopt($curl, CURLOPT_USERPWD, $wp_user . ':' . $wp_pass);
  109.                 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  110.                 curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
  111.                 curl_setopt($curl, CURLOPT_POST, true);
  112.                 curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
  113.                 $json_response = curl_exec($curl);
  114.                 curl_close($curl);
  115.                 $response = json_decode($json_response, true);
  116.                 $notice['categories_count'] += 1;
  117.             }
  118.         }
  119.  
  120.         // ARTICOLI
  121.         // CICLO SUI TITOLI DEGLI ARTICOLI MIEI PER CONTROLLARE CHE ESSI ESISTANO GIA'
  122.         foreach ($articles as $single_post1) {
  123.             // INIZIO DICENDO CHE IL POST CHE VOGLIO CONTROLLARE NON ESISTE
  124.             $post_exs = FALSE;
  125.  
  126.             // MI SALVO IL POST ATTUALE DA CONTROLLARE
  127.             $my_post = $single_post1['post_title'];
  128.             $curr_cat = $single_post1['name'];
  129.            
  130.             $my_slug_post = '';
  131.             $my_post_meta = '';
  132.  
  133.             // CICLO SUI TITOLI DEGLI ARTICOLI GIA' PRESENTI
  134.             foreach ($posts as $single_post) {
  135.  
  136.                 // SE L'ARTICOLO CHE VOGLIO CONTROLLARE E' UGUALE A QUELLO CHE STO CONTROLLANDO ORA...
  137.                 if ($my_post == $single_post['title']) {
  138.                     array_push($notice['post_exists'], array('title' => $single_post['title']));
  139.                     $post_exs = TRUE;
  140.                     break;
  141.                 }
  142.             }
  143.             if (isset($single_post1['post_meta'])) {
  144.                 $my_post_meta = $single_post1['post_meta'];
  145.             }
  146.             if (isset($single_post1['post_title_slug'])) {
  147.                 $my_slug_post = $single_post1['post_title_slug'];
  148.             }
  149.  
  150.             $id_cat = '';
  151.  
  152.             foreach ($list_categories as $single_category) {
  153.                 if ($single_post1['category'] == $single_category['name']) {
  154.                     $id_cat = $single_category['id'];
  155.                     break;
  156.                 }
  157.             }
  158.  
  159.             if ($post_exs == TRUE) {
  160.  
  161.                 array_push($notice['post_exists'], $single_post1);
  162.                 echo "<br>Il post gia' esiste!";
  163.                 // UN POST CON QUESTO TITOLO GIA' ESISTE PER CUI PROVO AD INSERIRLO CON UN DIVERSO SLUG, SE E' DEFINITO
  164.                 if ($my_slug_post != '') {
  165.                    
  166.                     array_push($notice['post_has_slug'], $my_slug_post);
  167.                     $my_post = $my_slug_post;
  168.  
  169.                     // PROVO AD AGGIUNGERE IL NUOVO POST AGGIUNGENDO COME TITOLO QUELLO DELLO SLUG
  170.                     $curl = curl_init($url_posts);
  171.                     $data = array(
  172.                         'slug' => $my_slug_post,
  173.                         'title' => array(
  174.                             'rendered' => $my_post
  175.                         ),
  176.                         'meta' => array($my_post_meta),
  177.                         'categories' => array(intval($id_cat)),
  178.                         'content' => array(
  179.                             'rendered' => 'Prova',
  180.                             'protected' => false
  181.                         ),
  182.                         'excerpt' => array(
  183.                             'rendered' => 'Prova',
  184.                             'protected' => false
  185.                         ),
  186.                         'type' => 'post'
  187.                     );
  188.  
  189.                     echo var_dump($data)."<br>";
  190.                    
  191.                     $content = json_encode($data);
  192.                     curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  193.                     curl_setopt($curl, CURLOPT_USERPWD, $wp_user . ':' . $wp_pass);
  194.                     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  195.                     curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
  196.                     curl_setopt($curl, CURLOPT_POST, true);
  197.                     curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
  198.                     $json_response = curl_exec($curl);
  199.                     curl_close($curl);
  200.                     $response = json_decode($json_response, true);
  201.                     echo "<br>" . var_dump($response);
  202.                 }
  203.             } else {
  204.                 // IL POST NON ESISTE, PER CUI PROVO AD INSERIRLO...
  205.                 echo "<br>Il post non esiste ancora!<br>";
  206.                 $curl = curl_init($url_posts);
  207.                 $data = array(
  208.                     'slug' => $my_slug_post,
  209.                     'title' => $my_post,
  210.                     'meta' => array($my_post_meta),
  211.                     'categories' => array(intval($id_cat)),
  212.                     'content' => 'Prova',
  213.                     'excerpt' => 'Prova',
  214.                     'type' => 'post'
  215.                 );
  216.  
  217.                 echo var_dump($data)."<br>";
  218.                 $content = json_encode($data);
  219.                 curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  220.                 curl_setopt($curl, CURLOPT_USERPWD, $wp_user . ':' . $wp_pass);
  221.                 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  222.                 curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
  223.                 curl_setopt($curl, CURLOPT_POST, true);
  224.                 curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
  225.                 $json_response = curl_exec($curl);
  226.                 curl_close($curl);
  227.                 $response = json_decode($json_response, true);
  228.                 echo "<br>" . var_dump($response);
  229.             }
  230.         }
  231.         var_dump($notice);
  232.     }
  233.  
  234. }
  235.  
  236. WP_Edit_Util::createAndAssignPost('http://localhost/wordpress', 'daniele', 'nPl9x1o0yvkYmB#o#Dbw&vcn', array(
  237.     array('category' => 'animali',
  238.         'post_title' => 'I cani',
  239.         'post_title_slug' => 'i-cani'),
  240.     array('category' => 'Noia',
  241.         'post_title' => 'Ci risiamo...',
  242.         'post_title_slug' => 'ci-risiamo'),
  243.     array('category' => 'Facilis dignissimos',
  244.         'post_title' => 'Possimus ut tenetur eum qui',
  245.         'post_title_slug' => 'Possimus-ut-tenetur-eum-qui'),
  246.         )
  247. );
  248. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement