我创建了以下wordpress页面模板:
<?php
/* Template Name: Report Creator */
get_header();
wp_enqueue_style( 'wp-admin' );
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
?>
<style>
.table td{
padding-left:0;
}
</style>
<!-- ############################### -->
<?php
if(isset($_POST['function-action'])){
$function_action = $_POST['function-action'];
switch($function_action){
case 'form-edit-profile':
break;
case 'form-delete-profile':
wp_delete_post(); //pass ID over here to delete the post
break;
default:
break;
}
}
?>
<table>
<tr>
<th>Titel</th>
<th>Creation Date</th>
<th>Next fetch time</th>
<th># of Recipience</th>
<th>Functions</th>
</tr>
<?php
if ( is_user_logged_in() ):
global $current_user;
$author_query = array('post_status' => array( 'draft' ),
'author' => $current_user->ID,
'meta_query' => array(
array(
'key' => 'wpgamail_options',
'key' => 'ganalytics_settings',
),
),);
$author_posts = new WP_Query($author_query);
while($author_posts->have_posts()) : $author_posts->the_post();
?>
<tr>
<td>
<?php the_title(); ?>
</td>
<td>
<?php $post_date = get_the_date(); echo $post_date; ?>
</td>
<td>
<?php $field = get_field('wpgamail_options', get_the_ID(), true); echo "Next report on " . date('l jS \of F Y h:i:s A', $field['nextfetchtime']); ?>
</td>
<td>
<?php echo count($field['recipients']) . " Recipient"; ?>
</td>
<td>
<form method="post">
<input type="hidden" name="function-action" value="form-edit-profile"/>
<input type="submit" value="Edit Profile" class="button button-primary" />
</form>
</td>
<td>
<form method="post">
<input type="hidden" name="function-action" value="form-delete-profile"/>
<input type="submit" value="Delete Profile" class="button button-primary" onclick="return confirm('Do you really want to delete the report-settings?')" />
</form>
</td>
</tr>
<?php
endwhile;
else :
echo "You are not logged in. Please log in!";
endif;
?>
</table>
<hr/>
</main>
<!-- .site-main -->
</div>
<!-- .content-area -->
<?php get_footer(); ?>
我的问题是,我不知道如何将当前所选帖子的ID传递给switch-case
构造,以便delete / edit
发布帖子。
有任何建议怎么做?
感谢您的回复!
答案 0 :(得分:1)
试试这个。
您的HTML
<form method="post">
<input type="hidden" name="function-action" value="form-delete-profile" />
<input type="hidden" name="this_id" value="<?php echo get_the_ID(); ?>" />
<input type="submit" value="Delete Profile" class="button button-primary" onclick="return confirm('Do you really want to delete the report-settings?')" />
</form>
您的PHP
<?php
if(isset($_POST['function-action'])){
$function_action = $_POST['function-action'];
$this_id = (int)$_POST['this_id'];
$post_author = get_post_field( 'post_author', $this_id ); //Get post's author
switch($function_action){
case 'form-edit-profile':
break;
case 'form-delete-profile':
if( $post_author == get_current_user_id() ) { //This condition is to check that currect is the author of this post
wp_delete_post( $this_id ); //pass ID over here to delete the post
} else{
echo "You don't have permission to delete it.!";
}
break;
default:
break;
}
}
?>
祝你好运