array(
‘name’ => __(‘Petitions’),
‘singular_name’ => __(‘Petition’)
),
‘public’ => true,
‘has_archive’ => true,
‘supports’ => array(‘title’, ‘editor’, ‘thumbnail’, ‘custom-fields’),
‘rewrite’ => array(‘slug’ => ‘petitions’),
)
);
}
add_action(‘init’, ‘create_petition_post_type’);
// Create Petition Submission Form Shortcode
function petition_submission_form() {
ob_start();
?>
sanitize_text_field($_POST[‘petition_title’]),
‘post_content’ => sanitize_textarea_field($_POST[‘petition_description’]),
‘post_type’ => ‘petition’,
‘post_status’ => ‘pending’,
‘meta_input’ => array(
‘target’ => sanitize_text_field($_POST[‘petition_target’])
)
);
$post_id = wp_insert_post($new_petition);
if (!empty($_FILES[‘petition_image’][‘name’])) {
require_once(ABSPATH . ‘wp-admin/includes/image.php’);
require_once(ABSPATH . ‘wp-admin/includes/file.php’);
require_once(ABSPATH . ‘wp-admin/includes/media.php’);
$attachment_id = media_handle_upload(‘petition_image’, $post_id);
if (!is_wp_error($attachment_id)) {
set_post_thumbnail($post_id, $attachment_id);
}
}
echo ‘
Start a Petition
Petition submitted for review!
‘; } return ob_get_clean(); } add_shortcode(‘petition_form’, ‘petition_submission_form’); // Display List of Petitions function display_petitions() { $args = array( ‘post_type’ => ‘petition’, ‘posts_per_page’ => 10, ‘post_status’ => ‘publish’ ); $query = new WP_Query($args); ob_start(); if ($query->have_posts()) { echo ‘‘;
echo ‘
‘;
} else {
echo ‘Active Petitions
‘; echo ‘- ‘;
while ($query->have_posts()) {
$query->the_post();
echo ‘
- ‘ . get_the_title() . ‘ ‘; } echo ‘
No petitions found.
‘; } wp_reset_postdata(); return ob_get_clean(); } add_shortcode(‘petition_list’, ‘display_petitions’); ?>