根据选项菜单中的输入执行操作

时间:2013-03-10 作者:cikatomo

这是我第一次编写插件。我已成功使用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 插件文件夹中的脚本?还是有其他方法,内置函数?

1 个回复
最合适的回答,由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 为了更好的安全性

结束

相关推荐

如何通过引用登录的用户名来调用特定文件(通过php)?

我想设置一个页面,为属于特殊创建的用户角色(“map\\u user”)的每个网站注册用户显示不同的内容。因此,例如,如果属于“map\\u user”类别的站点用户登录到该站点,则会自动将其转发到特定页面。然后,此页面引用其用户名,根据该用户名调用特定的外部内容(html),并将其包含在页面中。我已经通过插件和功能的组合解决了第一个问题(根据用户角色转发用户)。但我正在努力完成第二部分,一旦他们到达目标页面。我已经为页面创建了一个模板,并在其中包含了以下php:<?php if ( is_arra