首页 > 解决方案 > 如何从 WordPress 的特定帖子中隐藏/禁用/删除自定义元框?

问题描述

我正在创建一个 WordPress 插件,并且我有一个自定义元框。我需要从管理员检查的帖子列表中删除自定义元框。我正在插件设置页面中获取所有帖子的列表,如下所示:

<?php 
global $post;
$args = array( 'posts_per_page' => -1, 'offset'=> 1, 'category' => 1 );

$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
        <input type="checkbox" id="postcb" name="postcb[]" value="<?php the_title(); ?>">
        <label id='postcbid' for='postcb'>
            <?php the_title(); ?>
        </label>
        <br>
<?php endforeach; 

wp_reset_postdata();?>
<?php echo '<input type="button" id="btnenable" name="Enable" value="Enable" onclick="displayenable()">' ?>

我在 Javascript 中有 displayenable() 函数,它检查哪些复选框被选中,如下所示:

<script type="text/javascript">
function displayenable()
{
    var chk_arr =  document.getElementsByName("postcb[]");
    var chklength = chk_arr.length;             
    var cnt=0;
    for(k=0;k< chklength;k++)
    {
        if(chk_arr[k].checked===true)
        {
            cnt++;

            <?php 
            function remove_custom_metabox(){
                remove_meta_box( 'my-meta-box-id' , 'page' , 'normal' ); 
            }
            add_action('add_meta_boxes', 'remove_custom_metabox'); ?>
        }
    }
    //alert(cnt);
}
</script>

现在如何从复选框中选中的所有帖子中删除元框?谢谢!

编辑 1:由于我们不能像我一样在 JS 中执行 PHP,所以我尝试在 PHP 中执行所有操作,如下所示:

<?php

if(isset($_REQUEST['submit_btn']))
{       
    $cbarray=$_POST['postcheck'];
    if($cbarray!=NULL)
    {
        foreach($cbarray as $val)
        {
            //echo $val . '</br>';
            function remove_custom_metabox($post_type)
            {
                remove_meta_box('my-meta-box-id', $post_type, 'normal');
            }
            add_action('add_meta_boxes', 'remove_custom_metabox',99,1);
        }
    }
}
?>

现在如何修改此代码,以便仅从某些帖子中删除元框?

标签: javascriptphpjquerywordpress

解决方案


推荐阅读