View difference between Paste ID: j1anH8Gj and
SHOW: | | - or go back to the newest paste.
1-
1+
<?php
2
/**
3
 * Template Name: Post Insert
4
 *
5
 * A custom page template that allows users to submit a post from the front end.
6
 * Based on the Twenty Ten page template.
7
 * The "Template Name:" bit above allows this to be selectable
8
 * from a dropdown menu on the edit page screen.
9
 *
10
 * @author iCosmin (http://icosmin.com)
11
 * @package WordPress
12
 * @subpackage Twenty_Ten
13
 * @since Twenty Ten 1.0
14
 */
15
16
get_header(); ?>
17
18
		<div id="container" class="one-column">
19
			<div id="content" role="main">
20
          
21
            <?php
22
									  
23
			    global $wpdb;
24
				global $post;
25
				$title = $_POST['title']; // get the inputted title
26
				$content = $_POST['content']; // get the inputted content
27
				$categorie = $_POST['cat'];  // get the category selected by user
28
				$zombies = $_POST['zombies'];
29
				# run a query to check for a post containing the data that our user is about to submit
30
				# store results in $verifica 
31
				$sql = "
32
				SELECT wposts.* 
33
				FROM $wpdb->posts wposts
34
					LEFT JOIN $wpdb->postmeta wpostmeta ON wposts.ID = wpostmeta.post_id 
35
					LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
36
					LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
37
				WHERE wposts.post_status = 'publish'
38
				    AND wposts.post_title = '$title'
39
					AND wposts.post_content = '$content'
40
					AND wpostmeta.meta_key = 'Zombies'
41
					AND wpostmeta.meta_value = '$zombies'
42
					AND $wpdb->term_taxonomy.taxonomy = 'category'
43
					AND $wpdb->term_taxonomy.term_id IN($categorie)";
44
				$verifica = $wpdb->get_results($sql);
45
				
46
				  if( 'POST' == $_SERVER['REQUEST_METHOD'] ) { // if form has been submitted
47
				  
48
				  # some validation
49
					  if(empty($title)) {
50
						echo "Please give your post a title<br />";
51
					  }
52
					  if (empty($content)){
53
						echo "Please write your post's content<br />";
54
					  }
55
					  if ($categorie == -1){
56
						   echo "Please assign a category to your post.<br />";
57
					  }
58
					  if (empty($zombies)) {
59
						    echo "Please input any number of Zombies";  
60
					  }
61
					  # if there are no similar posts ($verifica is empty) and user filled in the fields, insert post
62
					  # also, redirect to the homepage to make sure we don't get 404-ed
63
					  if (empty($verifica) && !empty($title) && !empty($content) && $categorie != -1) {
64
				        $my_post = array(
65
					     'post_title' => $title,
66
					     'post_content' => $content,
67
					     'post_status' => 'draft',
68
					     'post_author' => 1,
69
					     'post_category' => array($categorie),
70
				          );
71
						  
72
					$my_post = wp_insert_post($my_post);
73
					add_post_meta($my_post, 'Zombies', $zombies);
74
					wp_redirect( home_url() );
75
					  }
76
					  
77
					  # if $verifica is not empty, then we don't insert the post and we display a message
78
					  else if( !empty($verifica) ) { echo "You are trying to submit the same post twice! Be nice.";  }
79
				  } 
80
			?>
81
            <hr>
82
            <form action="" method="post" name="myForm">
83
                <p><label for="title">Title</label>
84
                <input type="text" name="title" id="title">
85
                </p>
86
                <p>
87
                <?php wp_dropdown_categories( 'show_option_none=Please choose a category&tab_index=4&taxonomy=category&hide_empty=0' ); ?>
88
                </p>
89
                <p>
90
                <label for="zombies">Zombies <small>(number; adds a custom field named 'Zombies' with the value you specify)</small></label>
91
                <input type="text" name="zombies" id="zombies">
92
                </p>
93
                <p>
94
                <label for="content">Post Content</label>
95
                <textarea name="content" id="content" cols="30" rows="10"></textarea>
96
                </p>
97
                <input type="submit" value="Insert post">
98
<?php wp_nonce_field( 'myForm' ); ?>
99
100
            </form>
101
            
102
            <hr>
103
            
104
			</div><!-- #content -->
105
		</div><!-- #container -->
106
107
<?php get_footer(); ?>