【问题标题】:Wordpress - Add form inside post edit pageWordpress - 在帖子编辑页面中添加表单
【发布时间】:2017-08-30 19:18:05
【问题描述】:

我想在帖子编辑页面中创建一个新元框,其中包含一个按钮,该按钮应提交带有隐藏字段的表单。

问题在于帖子编辑页面本身就是一个表单 - 所以从技术上讲,我正在尝试在表单内创建一个表单,而这在 HTML 规范中是不可能的。

另外,我不想通过 GET(简单链接)提交它,因为它不能被缓存。

这是代码:

function meta_box_html()
{
    ?>
    <form action="..." method="post">
        <input type="hidden" name="name" value="value">
        <input type="submit">
    </form>
    <?php
}

add_action("add_meta_boxes", function () {
    add_meta_box("id", "title", "meta_box_html", "post", "side", "high", null);
});

当我点击按钮时 - 没有任何反应,页面只是重新加载。

任何想法如何添加表单到发布编辑页面?

【问题讨论】:

  • 为什么不在single.php 中实现它?这是一个主题?
  • 不,它不是主题。单击按钮时,应将一些逻辑应用于帖子,就是这样。
  • 为什么不编辑 .php 文件来编辑已经在里面的表单呢?你能在.php文件中找到表格吗?

标签: php wordpress forms


【解决方案1】:

我遇到了同样的问题。这是我解决它的方法。

首先,为方便起见,我在管理员警报中生成了我的表单,如下所示。如果您只希望它出现在“编辑帖子”页面上,则可以将其放入检查当前页面的 ID 是否为“post”且 parent_file 是否为“edit.php”的 if() 中。

function myform_custom_box_html($post)
{
    ?>
    <div id="myform_holder">
     <form action="<?php echo admin_url('admin-post.php'); ?>" method="post" id="myform" >
        <input type="hidden" name="action" value="myform">
        <input id="myform_fname" type="text" name="myform_fname" value="" placeholder="Recipient name" /><br />
        <input type="submit" name="myform_submit" id="rejecter_submit" class="button button-primary" value="Submit Form">
    </form>
    </div>
    <?php
}

add_action( 'admin_notices', 'myform_custom_box_html' );

然后我用一点js把它移到了页面中我想要的位置。在这种情况下,它会将其附加在“发布”按钮下方,但您可以定位 DOM 中所需的任何元素。您必须将其放入正确排队到 wordpress 管理员的文件中:

$(document).ready(function() {
  var myform =  $('#myform_holder').remove();
  myform.appendTo('#major-publishing-actions');
});

两种形式都可以在这种方法下正常工作。

【讨论】:

    猜你喜欢
    • 2013-11-07
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2018-08-23
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多