Reputation: 49
I want to add post in the database with WordPress. I tried this code.
wordpress\wp-content\themes\twentyseventeen\index.php:
<div class="admin-quick-add">
<h3>Quick Add post</h3>
<input type="text" name="title" placeholder="Title">
<textarea name="content" placeholder="Content"></textarea>
<button id="quick-add-button">Create Post</button>
</div>
wordpress\wp-content\themes\twentyseventeen\assets\js:
quickAddButton = document.querySelector("#quick-add-button");
if (quickAddButton) {
quickAddButton.addEventListener("click", function() {
var OurPOSTData = {
"title": document.querySelector('.admin-quick-add [name="title"]').value,
"content": document.querySelector('.admin-quick-add [name="content"]').value,
"status": "publish",
}
//alert (JSON.stringify(OurPOSTData));
var createPost = new XMLHttpRequest();
createPost.open('POST', 'http://localhost/wordpress/wp-json/wp/v2/posts');
createPost.setRequestHeader("X-WP-Nonce", magicalData.nonce);
createPost.setRequestHeader("Content-Type", "application/json; charset=utf-8");
createPost.send(JSON.stringify(OurPOSTData));
});
}
wordpress\wp-content\themes\twentyseventeen\functions.php
function twentyseventeen_scripts() {
/* Some code */
// My Script
wp_enqueue_script( 'main_js', get_theme_file_uri( '/assets/js/main.js' ), NULL, 1.0, true); /* Some code */ } add_action( 'wp_enqueue_scripts', 'twentyseventeen_scripts' );
but it does not work.
Upvotes: 1
Views: 504
Reputation: 9331
Try this
add your username and password
quickAddButton = document.querySelector("#quick-add-button");
if (quickAddButton) {
quickAddButton.addEventListener("click", function() {
var OurPOSTData = {
"title": document.querySelector('.admin-quick-add [name="title"]').value,
"content": document.querySelector('.admin-quick-add [name="content"]').value,
"status": "publish",
}
//alert (JSON.stringify(OurPOSTData));
var createPost = new XMLHttpRequest();
createPost.open('POST', 'http://localhost/wordpress/wp-json/wp/v2/posts');
createPost.setRequestHeader("X-WP-Nonce", magicalData.nonce);
createPost.setRequestHeader("Content-Type", "application/json; charset=utf-8");
createPost.setRequestHeader('Authorization', 'Basic ' + window.btoa("username:password"));
createPost.send(JSON.stringify(OurPOSTData));
});
Upvotes: 1