我正在尝试构建我的第一个插件。
我有一个表单,用于收集创建帖子所需的信息。在我允许帖子进入数据库之前,我需要强制用户接受我的服务条款。
我有一个复选框和一个链接。该链接将转到TOS页面(我的自定义PHP页面),一旦用户接受TOS,用户就可以返回填写了数据的FORM,并选中复选框。
用户也可以选中此框并提交他们的帖子。
我的问题是如何包装我的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>';
?>
答案 0 :(得分:1)
我读到了假网页。 http://betterwp.net/98-wordpress-create-fake-pages/这可能是你的答案。
答案 1 :(得分:0)
看起来您需要学习Wordpress的基础知识,因为在您创建插件之后,它将适用于大多数主题,除非您创建针对特定类或ID的特定主题的插件。
但是,您可以向插件添加库,以便它可以将它们用于特定任务。您可能需要为您要求的内容构建一个插件。但如果你对PHP很好,你就不会有问题。
我建议从Wordpress Codex开始参考插件API:
答案 2 :(得分:0)
有几个步骤可以做到这一点。我这样做的方式如下
为表单创建短代码
add_shortcode('myshortcode','my_shortcode_handler');
创建函数my_shortcode_handler
function my_shortcode_handler($ atts,$ content = null){ include('myhtmlform.php'); }
创建myhtmlform.php,插入您的逻辑。
在您想要表单的任何页面中调用“[myshortcode]”
P.S。 将所有这些代码插入到插件主文件中。
此致
答案 3 :(得分:0)
最好(也是最复杂的方式)是添加重写规则并重写标记:
添加如下标记: http://codex.wordpress.org/Rewrite_API/add_rewrite_tag
然后是重写规则: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
然后你会有一个像YOURDOMAIN.com/YOUR-URL这样的指针, 使用全局WP Query中的适当变量指向模板文件, 您可以使用动作'template_redirect'
执行此操作所以:
//add the rewrite tag to the WP Query (called on the init action, or earlier)
add_rewrite_tag('%terms-of-service%','([^&]+)');
//add a rewrite rule: (init or earlier)
add_rewrite_rule('^terms-of-service/?','index.php?tos=true','top');
//And then add an action on 'template_redirect':
add_action( 'template_redirect', 'tos_query' );
function tos_query(){
global $wp_query;
if( isset( $wp_query->query_vars['terms-of-service'] ) ){
locate_template( --YOUR URL-- )
}
}
请记住,WordPress的重写api是一个烦人的雷区,你将需要使用
global $wp_rewrite;
$wp_rewrite->flush_rules();
在一切正常之前,可能......
这个插件有一个很好的方式来处理重定向:http://wordpress.org/plugins/simple-portfolio/(虽然它适用于后期类型,而不是函数)