Php 使用前端用户插件在wordpress中添加带有表单的自定义页面

Php 使用前端用户插件在wordpress中添加带有表单的自定义页面,php,plugins,wordpress,Php,Plugins,Wordpress,嗨,我是wordpress插件开发的新手,我创建了一个插件,添加了一个侧菜单来显示jquery对话框 现在我试图在页面中向前端用户显示表单,但我很困惑如何开始 我想在侧菜单中为前端用户显示一个链接,当用户单击它时,我想用插件打开我的自定义页面。 (点击demo.com/my_page.php后,Url应该是这样的)。 我在谷歌上搜索了一下,但没有发现任何东西能理解一些人提出的模板(我还不知道) 请您向我推荐最好的方法。您可以创建新的页面模板和新页面,并将模板分配给该页面 然后可以在页面模板中添加

嗨,我是wordpress插件开发的新手,我创建了一个插件,添加了一个侧菜单来显示jquery对话框

现在我试图在页面中向前端用户显示表单,但我很困惑如何开始

我想在侧菜单中为前端用户显示一个链接,当用户单击它时,我想用插件打开我的自定义页面。 (点击demo.com/my_page.php后,Url应该是这样的)。 我在谷歌上搜索了一下,但没有发现任何东西能理解一些人提出的模板(我还不知道)


请您向我推荐最好的方法。

您可以创建新的页面模板和新页面,并将模板分配给该页面

然后可以在页面模板中添加自定义函数。这样,您将获得一个新的url,并且可以在WordPress上下文中运行自定义代码。

PHP版本5+

对于我将在下面描述的前两种方法,首先要做的是在Wordpress中创建页面。选择页面->新建以创建标题为“我的页面”或“我的页面”的页面。在这两种情况下,slug都应该是“我的页面”,除非已经存在。不要使用“我的页面”

有几种方法可以管理插件中的前端页面

我最喜欢的是将页面放在插件的目录中,然后将其复制到主题的目录中,如下例所示

像平常一样创建表单,并将其保存在插件目录中

此文件将是样式表目录中页面的模板。据我所知,页面必须位于这个目录中,WP才能加载它

例如:

// Make sure you define in your plugin's main script the location of the plugin, with a code like this:

// Holds the absolute path to MyPlugin directory, without slashes.
if ( !defined( 'MyPlugin_DIR' ) ) define( 'MyPlugin_DIR', __DIR__ );

    function CopyFile() {

      $TemplateFileSourceURL = MyPlugin_DIR . '/my-page.php'; // Address to your file in the plugin directory
      $TemplateFileTargetURL = get_stylesheet_directory() . '/page-my-page.php'; // Note the "page-" prefix, it is necessary for WP to select this file instead of the general "page.php". The name after the prefix must match the slug of the page created in WP. 

      if ( !file_exists( $TemplateFileSourceURL ) ) {
        return FALSE;
      }

      $GetTemplate = file_get_contents( $TemplateFileSourceURL );
      if ( !$GetTemplate ) {
        return FALSE;
      }

      $WriteTemplate = file_put_contents( $TemplateFileTargetURL, $GetTemplate );
      if ( !$WriteTemplate ) {
        return FALSE;
      }
      return TRUE;
    }
另一种方法是创建页面并将其作为模板文件或页面保存在主题目录中

要使其成为模板,必须在第一行中添加以下注释:

/*
Template Name: MyPage
*/
MyPage可以是任何名称。然后转到WP中的页面编辑器,并在右侧栏中选择MyPage模板。当您重新加载编辑器页面时,它应该在那里

如果将前缀“page-”添加到主题目录中的文件名,则不必将其作为模板。i、 e.page-my-page.php

最后一种方法是创建文件,将其保存在任何需要的位置,并在第一行中使用如下代码加载WP:

注意:如果使用此方法,则无需在WP中创建页面,它将不起任何作用,尽管您可能需要重新声明用户的变量和函数

require_once ('WPBlogUrl/wp-load.php'); // Make sure WPBlogUrl points to the blog's url.
哪种方法最好?取决于您的需求,但是如果您不想手动添加主题目录中的前端页面,我认为第一个选项是最好的

删除插件时,不要忘记删除卸载脚本中的文件

希望这有帮助


Felipe Alameda A.

另一个对我有效的简单解决方案就是在页面中加载

add_action('wp','my_custom_plugin_function')