【问题标题】:How to render a form through a plugin on a wordpress page?如何通过 wordpress 页面上的插件呈现表单?
【发布时间】:2020-02-05 21:30:27
【问题描述】:

我正在练习创建一个wordpress插件,到目前为止我已经通过安装插件并通过以下代码将其显示在管理员用户的管理栏中取得了进展。

if( !defined( 'ABSPATH' ) ) exit;

/**
 * Print SEO tags in the header
 * 
 * @return void
 */

function opt_menu_cactaceas() {
    ?>

    <h1>Registrador de Cactaceas</h1>
    <p>En el siguiente formulario podra registrar diferentes cactaceas</p>
    <p> Formulario 1 </p>

    <?php

}

function agregar_a_menu() {
    add_menu_page('Pluging Cactaceas', 'Plug. Cactaceas', 'manage_options', 'plugin_cactaceas_link', 'opt_menu_cactaceas');

}

add_action("admin_menu", "agregar_a_menu");

我目前的目标是能够在加载页面时做到这一点(例如 mydomain.com/form - 这只是一个页面,不会与任何文章相关联)插件呈现随后的表单在我已经配置的 bd Wordpress 的表格中记录信息。

执行一些测试,我设法找到了“the_content”钩子过滤器,它通过以下代码允许我呈现 HTML 标签,但只能在创建的文章中呈现,但我希望 HTML 标签直接呈现在页面上,它没有什么结果。

function wetuts_author_bio( $content ) {
    return $content . "<h1>hola diego</h1>";
}

add_filter('the_content', 'wetuts_author_bio');

我的问题是他们是否知道任何钩子或钩子表,因为我无法找到任何与页面呈现相关的钩子或钩子表。

我发现“the_content”的钩子仅在呈现文章时(进入文章时)才起作用,因此对我没有用处。

【问题讨论】:

    标签: php wordpress content-management-system custom-wordpress-pages


    【解决方案1】:

    为此,您必须在自定义插件中为表单创建一个shortcode,然后您可以直接在页面编辑器中使用该短代码。

    你可以像这样创建一个短代码:

    function registration_form($atts){
        $html = '<h1>Hello</h1>';
        return $html;
    }
    add_shortcode("registrationform", "registration_form");
    

    然后在任何页面编辑器中添加一个短代码[registrationform]

    请查看此tutorial 了解更多详情。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @TylerH 我应该改进答案吗?你想说什么对不起没听懂?
    • 抱歉,我忘记了审阅队列在帖子上放置了无用的自动 cmets。是的,您应该编辑答案以包含链接讨论的要点。这样,当链接断开时,这个答案不会失去它的价值。这是网站上的一项政策,旨在防止 Linkrot 出现常见问题(并防止人们花费不必要的时间在一个又一个站点链接中跳转)。另外仅供参考,我不是对您的帖子投反对票的人。
    • 嗨@Asif,我不是反对者,但我可以说,虽然实际上,Shortcode API 是在过滤的内容区域中实现 HTML 的好工具 - 在这种情况下它有与手头的问题直接冲突,即寻求帮助在不存在且不属于 WordPress 的默认永久链接结构(即“虚拟页面”)的 url 路径上输出任意 HTML。
    • @Xhynk 哦,不,他没有提到我在一个不存在的页面上呈现 HTML。他只是在问我如何在该特定页面上呈现表单。
    猜你喜欢
    • 1970-01-01
    • 2018-05-11
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2012-11-26
    相关资源
    最近更新 更多