SHOW:
|
|
- or go back to the newest paste.
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 | ?> |