web-dev-qa-db-ja.com

Contenteditableプロパティを使用するWordpressテーマ(またはプラグイン)

私は実験をしていて、許可するためにcontenteditablehtml5プロパティを利用するWordPressテーマを探しています。ライブWebサイトでのコンテキスト編集(認証された管理者ユーザー向け)。

例はありますか?

2
N2Mystic

私はテーマについて知りませんが、私はしばらく前に編集可能なdivの中に内容を包み込み、nonceと共に隠しtextareaでデータを送る「概念の教授」としてこれを書きました:

if (!class_exists('contentEditable')){
    /**
    * contentEditable class
    * @author Ohad Raz
    */
    class contentEditable
    {
        public $nonce;
        public $nonce_action;

        /**
         * class constructor
         * @author Ohad Raz
         */
        function __construct()
        {
            if(!is_admin()){
                $this->nonce = 'ce__wpnonce';
                $this->nonce_action = 'ce_editor';
                $this->all_checks = false;
                add_filter('the_content',array($this,'editable_content'),10);
                add_action('get_header',array($this,'check_submit'));
            }

        }

        /**
         * check_submit
         * function to check if the form has been submited
         * if so call the update post function
         * @author Ohad Raz
         * @return void
         */
        public function check_submit(){
            if (isset($_POST['content_editable_Save']) && $_POST['content_editable_Save'] == "submit"){
                $this->updated_post();
            }
        }

        /**
         * editable_content
         * function that adds the form to the content
         * @author Ohad Raz 
         * @param  string $content 
         * @return string
         */
        public function editable_content($content){
            global $post;
            //early exit if not needed
            if (!current_user_can('edit_post', $post->ID))
                return $content;

            wp_enqueue_script('jquery');
            add_action('wp_footer',array($this,'submit_js'));
            return '<form action="contentEditable_submit" method="POST" accept-charset="utf-8">
                        <div id="editable" contenteditable="true">'
                            .$content
                        .'</div>
                        <textarea id="h_content" name="content" style="display:none;"></textarea>
                        <input type="hidden" name="pid" value="'.$post->ID.'">
                        <input type="hidden" name="content_editable_Save" value="submit">'
                        .wp_nonce_field($this->nonce_action, $this->nonce,true, false)
                        .'<input type="submit" id="submit_editable" name="save" value="'.__('Save changes').'">
                    </form>';
        }

        /**
         * updated_post
         * the function that actually updates the post and redirects to the newly modified post
         * @author Ohad Raz
         * @return VOID
         */
        public function updated_post(){
            if ($this->_verify_nonce()){

                $p['ID'] = intval($_POST['pid']);
                $p['post_content'] = $_POST['content'];
                $n = wp_update_post($p);
                wp_redirect(get_permalink($n));
                exit;
            }
        }

        /**
         * _verify_nonce 
         * nonce check
         * @author Ohad Raz
         * @return boolean
         */
        public function _verify_nonce()
        {
            $n = isset($_REQUEST[$this->nonce]) ? $_REQUEST[$this->nonce]: '';
            if ('' === $n) return false;
            if (!function_exists('wp_verify_nonce'))
                require_once(ABSPATH .'wp-includes/pluggable.php');
            return wp_verify_nonce($n, $this->nonce_action);
        }

        /**
         * submit_js
         * some jQuery magic
         * @author Ohad Raz
         * @return void
         */
        public function submit_js(){
            ?>
            <script type="text/javascript">
                jquery(document).ready(function($){
                    $("#submit_editable").click(function(){
                        $("#h_content").val($("#editable").html());
                        return true;
                    });
                });
            </script>
            <?php
        }

    }//end class
}//end if
new contentEditable();
1
Bainternet

プラグインをチェックしてください...それを待ってください... WPContentEditable 。私は簡単にソースを閲覧しました、そしてそれは満足のいく属性を使用しているようです、私はフォールバックがあると思いますが。それはあなたが整理するためです、私は:)と思います

1
mrwweb