这是我第一次编写插件。我已成功使用html表单获取选项菜单:
<?php
add_action(\'admin_menu\', \'menu\');
function menu(){
add_options_page("poster","poster",\'manage_options\',"poster",\'option_page_html\');
}
function option_page_html(){
?>
<div>
<form action="wp-content/plugins/poster/post-video.php" method="post">
<p><h3>Paste video url</h3></p>
<input type="text" size="100" name="url" /><br/>
<input type="submit" value="Post"/>
</form>
</div>
<?php
}
?>
我想做一个脚本
insert_post
从我粘贴在
input
领域这不是自动记录器,我只是想让它更容易嵌入一些相关的视频,我现在手动做。问题在于
form action="wp-content/plugins/poster/post-video.php"
部分wordpress似乎只在
wp-admin
文件夹,使其成为
http://example.com/wp-admin/wp-content/plugins/poster/post-video.php
当我尝试发布时,出现错误404。
我试过了form action="<?php echo __DIR__."/post-video.php"?>"
, 但当我发布时,它会转到http://example.com/var/www/wordpress/wp-content/plugins/poster/post-video.php"
如何为post-video.php
插件文件夹中的脚本?还是有其他方法,内置函数?
最合适的回答,由SO网友:Bainternet 整理而成
您应该发布到相同的URL并捕获提交示例:
function option_page_html(){
if (isset($_POST[\'plugin_action\']) && $_POST[\'plugin_action\'] == \'post_url\'){
include_once(plugin_dir_path(__FILE__).\'post-video.php\');
}
?>
<div>
<form action="" method="post">
<p><h3>Paste video url</h3></p>
<input type="text" size="100" name="url" /><br/>
<input type="hidden" name="plugin_action" value="post_url">
<input type="submit" value="Post"/>
</form>
</div>
<?php
}
note : 这是一个示例,您应该确保清理和验证该值,并可能使用
nonce
为了更好的安全性