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

时间:2012-11-09 06:17:38

标签: php plugins wordpress-plugin wordpress

嗨我对wordpress插件开发很新,我创建了一个插件,添加了一个Sidemenu来显示jquery对话框,

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

我想在前端用户的侧边菜单中显示一个链接,当用户点击它时,我想用插件打开我的自定义页面。 (点击后,Url应该是这样的:demo.com/my_page.php)。 我用谷歌搜索了但没有找到任何理解有些建议模板(我还不知道它们)。

请您告诉我最好的方法。

3 个答案:

答案 0 :(得分:3)

PHP Version 5 +

我将在下面描述的前两种方法的第一件事是在Wordpress中创建页面。选择Pages->创建它的新功能,标题为“my-page”或“My Page”。除非已经存在,否则在两种情况下,slug应该是“my-page”。不要使用“my_page”。

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

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

按照正常方式创建表单并将其保存在插件目录中。

此文件将是样式表目录中页面的模板。据我所知,该页面必须位于此目录中,以便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-”添加到主题目录中文件的名称,则不必将其设为模板。即page-my-page.php。

最后一种方法是创建文件,将其保存在任何地方,并在第一行加载带有这样的代码的WP:

注意:如果使用此方法,则无需在WP中创建页面,它将不执行任何操作,但您可能必须重新声明用户的变量和函数。

require_once ('WPBlogUrl/wp-load.php'); // Make sure WPBlogUrl points to the blog's url.

哪种方法最好?取决于您的要求,但如果您不想手动添加主题目录中的前端页面,我认为第一个选项是最好的选项。

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

希望这有帮助。

Felipe Alameda A。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

另一个对我有用的简单解决方案就是用

加载页面

add_action('wp','my_custom_plugin_function');

http://blog.frontendfactory.com/how-to-create-front-end-page-from-your-wordpress-plugin/