View difference between Paste ID: jRJ6Lgyd and XukHVsbQ
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
?>