Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将链接的自定义PHP页面添加到插件_Php_Wordpress_Plugins - Fatal编程技术网

如何将链接的自定义PHP页面添加到插件

如何将链接的自定义PHP页面添加到插件,php,wordpress,plugins,Php,Wordpress,Plugins,我正在尝试构建我的第一个插件 我有一个表单收集创建帖子所需的信息。在我允许帖子进入数据库之前,我需要强制用户接受我的TOS 我有一个复选框和一个链接。该链接将转到TOS页面(我的自定义PHP页面),一旦用户接受TOS,用户就可以返回到填充了他们的数据的表单,并选中复选框 用户也可以选中该框并提交他们的帖子 我的问题是如何包装我的TOS页面,使其与现有网站匹配。我希望我的PHP页面被包装成使用用户为其网站选择的任何主题。此外,我想回到表单,将其包装在用户主题中,就像最初一样 我用一个钩子打开我的表

我正在尝试构建我的第一个插件

我有一个表单收集创建帖子所需的信息。在我允许帖子进入数据库之前,我需要强制用户接受我的TOS

我有一个复选框和一个链接。该链接将转到TOS页面(我的自定义PHP页面),一旦用户接受TOS,用户就可以返回到填充了他们的数据的表单,并选中复选框

用户也可以选中该框并提交他们的帖子

我的问题是如何包装我的TOS页面,使其与现有网站匹配。我希望我的PHP页面被包装成使用用户为其网站选择的任何主题。此外,我想回到表单,将其包装在用户主题中,就像最初一样

我用一个钩子打开我的表格,所以在那里一切都很好

我想知道如何以正确的方式而不是廉价和简单的方式做到这一点

提前感谢您提供的任何帮助

<a href="test.php">To TOS</a>

<?PHP
    echo '<HTML><HEAD></HEAD><BODY>Terms Of Service</br>1. TOS 1</br>2. TOS 2<BODY></HTML>';
?>

看起来您需要学习Wordpress的基础知识,因为在创建插件后,它将适用于大多数主题,除非您创建的插件针对具有特定类或id的特定主题

但是,您可以将库添加到插件中,以便插件可以将它们用于特定任务。你可能需要为你想要的东西构建一个插件。但是如果你擅长PHP,你就不会有问题

我建议从Wordpress Codex开始参考插件API:


我读到关于假页面的报道。这可能就是你的答案。

有几个步骤可以做到这一点。我这样做的方式如下

  • 为表单创建快捷代码

    添加_短代码('myshortcode','my_短代码_handler')

  • 创建函数my_shortcode_处理程序

    函数my_shortcode_处理程序($atts,$content=null){ 包括('myhtmlform.php'); }

  • 创建myhtmlform.php,插入您的逻辑

  • 在您希望表单进入的任何页面中调用“[myshortcode]”

  • 附言。 在插件主文件中插入所有这些代码

    关于

    最好(也是最复杂的方法)是添加重写规则和重写标记:

    添加如下所示的标记:

    然后是重写规则:

    然后会有一个指向YOURDOMAIN.com/YOUR-URL的指针, 使用全局WP查询中的适当变量指向模板文件, 您可以使用“模板\u重定向”操作执行此操作

    因此:

    请记住,WordPress的重写api是一个恼人的雷区,您需要使用它

        global $wp_rewrite;
        $wp_rewrite->flush_rules();
    
    在一切正常之前,也许


    这个插件有一个很好的重定向方式:(虽然它是用于帖子类型,而不是函数)

    我最初的插件页面是通过一个钩子启动的,并被包装在exsting主题中。我的问题是,当我从该表单链接到显示TOS的PHP页面时,如何在现有主题中正确包装该页面。我知道我可以根据特定的主题手动拉入页眉、页脚和侧边栏,但我想确保我与当前的主题匹配,不管是什么主题。然后你显然没有正确阅读插件API上的文档,我建议你仔细阅读,因为如果你没有尝试,我们无法为你编写代码!如果有,请发布代码,以便我们了解问题所在!如果有什么不对劲,我向你道歉。我会做更多的研究。非常感谢您的帮助。我的挑战不是将数据推送或放入数据库。我的问题是在主题中包装TOS页面,然后回到我的表单页面并将其包装在主题中。可能是我误解了或者我没有正确解释。我有一个开始我的原始形式的短代码。现在我需要从该表单链接到我的TOS。我不能期望我的wordpress管理员创建两个带有两个不同短代码的页面,一个用于原始表单,另一个用于TOS正确吗?只需创建链接。有什么问题吗?哈哈,我有。检查一下,shawnweb.com/test登录testuser/1LjCGk4Ss9Qe。选择“添加一首诗”。转到表单底部并单击链接(“测试链接”)。请参阅,无页眉、页脚或侧边栏。file_get_content(),并返回该文件的结果。您正在回显它。文件的内容()将转到哪一页?我拿的是什么文件?我在我的php页面上回显HTML,作为我想用Wordpress包装的页面示例。本质上这是我的TOS页面。谢谢你,LucP,我会仔细阅读的。我真的很感谢你的帮助。
        global $wp_rewrite;
        $wp_rewrite->flush_rules();