wp_editor পাঠ্যের মূল্য আপডেট হচ্ছে না


16

আমি *_add_form_fieldsকাস্টম বিভাগে ক্ষেত্রগুলি যুক্ত করতে ক্রিয়াটি ব্যবহার করছি । এই ক্ষেত্রগুলির মধ্যে একটি হ'ল wp_editor ()।

আমি যে সমস্যার মুখোমুখি হচ্ছি তা হ'ল আমি যখন পৃষ্ঠাটিতে ওয়ার্ডপ্রেস সম্পাদককে এভাবে আউটপুট করি:

wp_editor('test', 'mydescription', array('textarea_name' => 'my_description')); 

এবং তারপর আমি যদি পৃষ্ঠাতে সম্পাদকে ক্লিক করুন এবং থেকে ডিফল্ট মান পরিবর্তন testকরতে পরিবর্তনশীল এখনো সেট করা হয়something else$_POST['my_description']test

আমি কি আমার সম্পাদককে একটি অতিরিক্ত সেটিং যুক্ত করব? টেক্সারিয়ার মান পরিবর্তন করতে না পারার কোন কারণ আছে কি?

সম্পাদনা

নীচে একটি খুব সাধারণ পরীক্ষার কেস যা এটি ঘটছে তা দেখায়। এটি আপনার ফাংশন.এফপি ফাইলে রাখুন এবং তারপরে একটি নতুন ট্যাগ তৈরি করুন । 'আমার_দর্শন "এর জন্য পোস্ট করা মানটি পরিবর্তন হবে না।

class Test{

    function __construct() {

        add_action('add_tag_form_fields', array($this, 'add_tag_form_fields'));

        add_action('created_term', array($this, 'created_term'));
    }

    function add_tag_form_fields($tag){

        if ( current_user_can( 'publish_posts' ) ): ?>

        <div class="form-field">
            <?php wp_editor('test', 'mydescription', array('textarea_name' => 'my_description')); ?>
        </div>

        <?php
    }

    function created_term($tag){
        echo '<pre>';
        print_r($_POST);
        echo '</pre>';
            die();
    }
}
new Test();

সম্পাদনা

"তৈরি_আরকৃত" ক্রিয়া সংযুক্ত করার সময় কেবল এটি ঘটে। যদি আপনি "editted_terms" এ সংযুক্ত থাকেন তবে এটি প্রত্যাশার মতো কাজ করে এবং আমি মনে করি এটি তৈরি শব্দ পৃষ্ঠাতে এজ্যাক্সের ফলস্বরূপ ... এটি দেখানোর জন্য আমি পরীক্ষার কোডটি আপডেট করেছি।


এটি আমার জন্য পরিবর্তিত হয়েছিল Array ( [action] => add-tag [screen] => edit-post_tag [taxonomy] => post_tag [post_type] => post [_wpnonce_add-tag] => 4f7d3df228 [_wp_http_referer] => /wp-admin/edit-tags.php?taxonomy=post_tag [tag-name] => Test99 [slug] => [description] => [my_description] => something else ):, আপনার কোডে অন্য কোনও সমস্যা হতে পারে?
রব ভার্মীর

দ্বিতীয় সম্পাদনা দেখুন। মনে হয় এটি কেবল তখনই ঘটে যখন আপনি একটি শব্দ "যুক্ত" করেন।
মাইক

উত্তর:


21

tinyMCE <textarea> উপাদান প্রাথমিকভাবে ব্যবহৃত সিরিয়ালাইজ ফাংশন দ্বারা অদেখা:

$.post(
    ajaxurl,
    $('#addtag').serialize(), function(r) {
        // Content here.
    }
});

tinyMCE.triggerSave()এটি দৃশ্যমান করার জন্য আপনাকে কল করতে হবে।

নীচে একটি সহজ স্নিপেট যা কৌশলটি করা উচিত:

jQuery('#submit').mousedown( function() {
    tinyMCE.triggerSave();
});

এটি একটি বাহ্যিক ফাইলের সাথে সজ্জিত wp_enqueue_script(); এটি আমি চালিয়েছি সেই পরীক্ষার জন্য কাজ করেছিল।


1
এটি আমার পক্ষে কাজ করে না। এটি প্রদর্শিত হয় তথ্য পোস্ট করা হয়, তারপরে আপনার ক্লিক ফাংশন কোডটি ট্রিগার করা হয়।
মাইকে

আপনি কি স্ক্রিপ্ট মাথায় এঁকেছেন? আপনি যদি এটিটিকে ফুটারে সজ্জিত করেন তবে এটি ডাব্লুপি-স্ক্রিপ্টগুলির পরে লোড হবে এবং এটি খুব দেরী করবে।
ungestaltbar

'ক্লিক' এর পরিবর্তে আপনি আসলে এটি $ ('# সাবমিট') এ আবদ্ধ করতে পারেন m
ungestaltbar

একটি মোহন ধন্যবাদ মত কাজ!
নিতিগায়ান

4

আপনার edited_termsফাংশনে আপনাকে মানটি সংরক্ষণ করতে হবে এবং আপনার নিজের সংরক্ষণকৃত ডেটা দিয়ে add_tag_form_fields আপনার প্রতিস্থাপন করতে হবে test

কিছুটা এইরকম:

class Test{

    function __construct() {

        //do_action('add_tag_form_fields', $taxonomy);
        add_action('add_tag_form_fields', array($this, 'add_tag_form_fields'));

        //do_action("edited_terms", $term_id, $tt_id, $taxonomy);
        add_action('edited_terms', array($this, 'edited_terms'));
    }

    function add_tag_form_fields($term){

        if ( current_user_can( 'publish_posts' ) ): ?>

        <div class="form-field">
            <?php 
            $saved = get_option('termmeta_'.$term->term_id);
            $saved = (empty($saved))? 'test': $saved;
            wp_editor($saved, 'mydescription', array('textarea_name' => 'my_description')); ?>
        </div>

        <?php
    }

    function edited_terms($term_id){
        if (isset($_POST['mydescription'])){
            update_option('termmeta_'.$term_id,$_POST['mydescription']);
        }
    }
}
new Test();

এখন আপনি যদি চক্রটিকে পুনরায় উদ্ভাবন না করে আপনার ট্যাগ / বিভাগ বা কাস্টম বিভাগে সম্পাদনা ফর্মগুলিতে সমস্ত ধরণের অতিরিক্ত ক্ষেত্র যুক্ত করার আরও সহজ উপায় চান তবে একবার দেখুন TAX Meta Class


আমার দ্বিতীয় মন্তব্য দেখুন, এটি প্রদর্শিত হয় যখন কেবল একটি পদ যুক্ত করার সময় ঘটে। এবং আমি মনে করি এটি এজ্যাক্স ব্যবহার করে এটির একটি ফলাফল।
মাইক

@ মাইক আপনি আজাক্স কোথায় ব্যবহার করছেন?
বেন্টারনেট

আপনি যখন একটি নতুন বিভাগ / শব্দ যুক্ত করেন তখন ডেটা পোস্ট করতে এবং নতুন শব্দ তৈরি করতে ওয়ার্ডপ্রেস অজ্যাক্স ব্যবহার করে। কিছু কারণে এটি wp_editor উপাদানকে সঠিক মান রাখতে দেয় না। মূল প্রশ্নে পরীক্ষার কোডটি ব্যবহার করে দেখুন।
মাইক

1

Wp_editor এর কোডেক্স অনুসারে প্রথম যুক্তিটি বিষয়বস্তু হওয়া উচিত। সুতরাং 'পরীক্ষার' পরিবর্তে আপনার উচিত $_POST['my_description']যদি এটি প্রাথমিক প্রাথমিক বিষয়বস্তু হতে চান।


2
সমস্যাটি সঠিকভাবে প্রদর্শিত সামগ্রীতে নয়। আপনি যদি টেক্সারিয়া সামগ্রীকে অন্য কোনও কিছুতে পরিবর্তন করেন তবে এটি পোস্টের ভেরিয়েবলটি মূল বিষয়বস্তুর সমান হয়।
মাইকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.