如何通过单击按钮更改帖子类别

How to change the posts category with a button click

我正在尝试创建一个按钮 "Approved" 以将 post 类别从当前类别更改为 "approved" 类别。我不介意它是否重新加载页面。我还想将页面重定向到原始类别中的下一个 post。

我已经发现了一些与此相关的问题,但最终还是迷失了如何将它们整合在一起并发挥作用。

<?php add_shortcode('approved_button', 'brist_approved_button_function');

function brist_approved_button_function() {
ob_start(); ?>

<form method="post" action="approved.php">
    <input type="submit" value="Approved" name="submit"> <!-- assign a name for the button -->
</form>


<?php

wp_set_object_terms( $post_id, intval( $_POST['approved'] ), 'category', false );
$output = ob_get_clean();
return $output;
}?>

我明白了。虽然这让我很头疼。如果其他人遇到同样的问题,请注意下面的代码。您必须创建 select,然后在您希望 post 更改为的类别上使用 'selected' 选项。然后,在CSS中,隐藏select输入,只留下按钮。

<?php add_shortcode('approved_button', 'approved_button_function');?>


<?php function approved_button_function() { ob_start();?>
    <div class="approval">
        <form action="" id="update-post" method="post">
            <?php wp_dropdown_categories( "selected='categoryId'&exclude=21&class=approval-select&show_count=1&hierarchical=1&orderby=name&order=ASC&&hide_empty=0&show_option_all=Choose An Option" ); ?>
            <input class="approval-button" type="submit" name="submit" value="Approve" />
        </form>
    </div>


<?php if ( array_key_exists('cat', $_POST )) {
    global $post;
    $post_id = $post->ID;
    wp_set_object_terms( $post_id, intval( $_POST['cat'] ), 'category', false );
} ?>