如何从WordPress边栏发出帖子请求?

时间:2011-11-28 14:34:10

标签: javascript forms wordpress tags sidebar

是否可以从WordPress边栏发出帖子请求?

我想打开页面,需要通过POST请求发送一些参数。但我发现侧边栏中的文本小部件中不允许FORM标记,而不是JAVASCRIPTONCLICK语法。

这有什么办法可以实现这个目标吗?

由于

更新1

我在wordpress上的免费帐户。

2 个答案:

答案 0 :(得分:1)

您是否希望避免编辑模板代码?

如果没有,那么你应该能够从你的Wordpress主题目录中打开sidebar.php,直接在那里打开它。

答案 1 :(得分:1)

您可能想要为此创建自己的插件和小部件。您可以在窗口小部件中输出表单和输入标记。

在下面的示例中,您可以在“小部件”功能中输出表单。例如,您可以在插件目录中创建一个目录,并将其命名为 foo ,然后创建一个名为foo.php的php文件,并使用类似于以下内容的代码:

<?php
/*
Plugin Name: Name Of The Plugin
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: A brief description of the Plugin.
Version: The Plugin's Version Number, e.g.: 1.0
Author: Name Of The Plugin Author
Author URI: http://URI_Of_The_Plugin_Author
License: A "Slug" license name e.g. GPL2
*/

    /**
     * Foo_Widget Class
     */
    class Foo_Widget extends WP_Widget {
        /** constructor */
        function __construct() {
            parent::WP_Widget( /* Base ID */'foo_widget', /* Name */'Foo_Widget', array( 'description' => 'A Foo Widget' ) );
        }
    /** @see WP_Widget::widget */
    function widget( $args, $instance ) {
        extract( $args );
        $title = apply_filters( 'widget_title', $instance['title'] );
        echo $before_widget;
        if ( $title )
            echo $before_title . $title . $after_title; ?>
        <form action="" method="post">
                    <input type="text" name="mytext" />
            <input type="text" name="result" value="<?php echo isset($_POST['mytext']) ? $_POST['mytext'] : ''; ?>" />
<input type="submit" name="submitbutton" value="Submit" /> </form>
        <?php echo $after_widget;
    }

    /** @see WP_Widget::update */
    function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);
        return $instance;
    }

    /** @see WP_Widget::form */
    function form( $instance ) {
        if ( $instance ) {
            $title = esc_attr( $instance[ 'title' ] );
        }
        else {
            $title = __( 'New title', 'text_domain' );
        }
        ?>
        <p>
        <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> 
        <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
        </p>
        <?php 
    }

    } // class Foo_Widget
    // register Foo_Widget widget
    add_action( 'widgets_init', create_function( '', 'register_widget("Foo_Widget");' ) );
?>