একক কাস্টম পোস্ট ধরণের জন্য অটোসোভ বন্ধ করা সম্ভব


10

সুতরাং আমি আমার কাস্টম পোস্ট প্রকারে আমার কাস্টম ক্ষেত্রগুলির সাথে একটি সমস্যা করছি। যে কোনও কারণে ক্ষেত্রগুলি সংরক্ষণ করে এবং তারপর কিছুটা এলোমেলোভাবে সাফ করুন ... আমি নিশ্চিত যে এটি এলোমেলো নয় তবে আমি নিশ্চিত নই যে এটি ঘটবে কি ঘটছে। আমার কাস্টম পোস্ট ধরণের কোড এখানে:

    // Custom Post Type: Strategic Giving
add_action('init', 'giving_register');

function giving_register() {

  $labels = array(
    'name' => _x('Invest Items', 'post type general name'),
    'singular_name' => _x('Item', 'post type singular name'),
    'add_new' => _x('Add New', 'giving item'),
    'add_new_item' => __('Add New Item'),
    'edit_item' => __('Edit Item'),
    'new_item' => __('New Item'),
    'view_item' => __('View Item'),
    'search_items' => __('Search Items'),
    'not_found' =>  __('Nothing found'),
    'not_found_in_trash' => __('Nothing found in Trash'),
    'parent_item_colon' => ''
    );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    'menu_icon' => get_stylesheet_directory_uri() . '/images/cpt-giving.png',
    'rewrite' => array( 'slug' => 'giving_items' ),
    'capability_type' => 'post',
    'hierarchical' => true,
    'menu_position' => null,
    'supports' => array('title','thumbnail','editor'),
    'paged' => false,
    ); 

  register_post_type( 'givings' , $args );
}

register_post_type( 'givings' , $args );

add_action("admin_init", "giving_admin_init");

function giving_admin_init(){
  add_meta_box("giving_info-meta", "Item Options", "giving_info", "givings", "side", "high");
}

function giving_info(){
  global $post;
  $custom = get_post_custom($post->ID);
  $amount = $custom["amount"][0];
  $monthly = $custom["monthly"][0];
  $user_entered_value = $custom["user_entered_value"][0];
  $item_name = $custom["item_name"][0];
  $special = $custom["special"][0];
  ?>
  <div style="text-align: right;">
    <p>
      <label for="amount"><strong>Amount:</strong></label>  
      <input style="width: 180px" type="text" name="amount" id="amount" value="<?php echo $amount; ?>" />
      <em>Example: 30.00</em>
    </p>
    <p>
      <label for="monthly"><strong>Monthly?</strong></label>  
      <?php if ($monthly == 'on') { ?>
        <input type="checkbox" name="monthly" id="monthly" checked="checked" />
      <?php } else { ?>
        <input type="checkbox" name="monthly" id="monthly" />
      <?php } ?>      
    </p>
    <p>
      <label for="special"><strong>Special Item?</strong></label>  
      <?php if ($special == 'on') { ?>
        <input type="checkbox" name="special" id="special" checked="checked" />
      <?php } else { ?>
        <input type="checkbox" name="special" id="special" />
      <?php } ?>      
    </p>
    <p>
      <label for="user_entered_value"><strong>Allow Giver To Enter Custom Value?</strong></label>  
      <?php if ($user_entered_value == 'on') { ?>
        <input type="checkbox" name="user_entered_value" id="user_entered_value" checked="checked" />
      <?php } else { ?>
        <input type="checkbox" name="user_entered_value" id="user_entered_value" />
      <?php } ?>      
    </p>
    <p>
      <label for="item_name"><strong>Item Name:</strong></label>              
      <input style="width: 180px" type="text" name="item_name" id="item_name" value="<?php echo $item_name; ?>" /><br />
      If item is a <em>per item</em> then enter the name of the singular item. <em>Example: Chair - which will be displayed as "30.00 per Chair"</em>
    </p>
    <p style="text-align: left;">
      Strategic Giving photo must be horizontal and uploaded/set as the <strong>Featured Image</strong> (see below).
      <em>Do not add photo to content area.</em>
    </p>
  </div>
  <?php }  

add_action('save_post', 'giving_save_details_amount');
add_action('save_post', 'giving_save_details_monthly');
add_action('save_post', 'giving_save_details_user_entered_value');
add_action('save_post', 'giving_save_details_item_name');
add_action('save_post', 'giving_save_details_special');

function giving_save_details_amount(){
  global $post;
  update_post_meta($post->ID, "amount", $_POST["amount"]);
}

function giving_save_details_monthly(){
  global $post;
  update_post_meta($post->ID, "monthly", $_POST["monthly"]);
}

function giving_save_details_user_entered_value(){
  global $post;
  update_post_meta($post->ID, "user_entered_value", $_POST["user_entered_value"]);
}

function giving_save_details_item_name(){
  global $post;
  update_post_meta($post->ID, "item_name", $_POST["item_name"]);
}

function giving_save_details_special(){
  global $post;
  update_post_meta($post->ID, "special", $_POST["special"]);
}

add_action("manage_pages_custom_column",  "givings_custom_columns");
add_filter("manage_edit-givings_columns", "givings_edit_columns");

function givings_edit_columns($columns){
  $columns = array(
    "cb" => "<input type=\"checkbox\" />",
    "title" => "Strategic Giving Item",
    "amount" => "Amount",
    "monthly" => "Monthly",
    "special" => "Special Item",
    "giving_image" => "Image"
    );

  return $columns;
}

function givings_custom_columns($column){
  global $post;

  switch ($column) {
    case "amount":
    $custom = get_post_custom();
    echo $custom["amount"][0];
    break;

    case "monthly":
    $custom = get_post_custom();
    $is_monthly = $custom["monthly"][0];
    if ($is_monthly == "on") {
      echo "Yes";
    };
    break;

    case "special":
    $custom = get_post_custom();
    $is_special = $custom["special"][0];
    if ($is_special == "on") {
      echo "Yes";
    };
    break;

    case "giving_image":
      echo get_the_post_thumbnail(NULL, 'staff_admin');
    break;
  }
}

function giving_amount(){
  $custom = get_post_custom();
  return $custom["amount"][0];
}

function giving_monthly(){
  $custom = get_post_custom();
  return $custom["monthly"][0];
}

function giving_special(){
  $custom = get_post_custom();
  return $custom["special"][0];
}

function giving_user_entered_value(){
  $custom = get_post_custom();
  return $custom["user_entered_value"][0];
}

function giving_item_name(){
  $custom = get_post_custom();
  return $custom["item_name"][0];
}

আপডেট: সুতরাং আমি আরও গবেষণা করেছি এবং এটি বের করেছিলাম। অটোস্যাভ (ওরফে রিভিশনস) - পোস্ট মেটাডেটা নিজেই মুছবে

বিশ্বব্যাপী নয় শুধুমাত্র একটি একক পোস্ট টাইপের জন্য অটোসোভ বন্ধ করা কি সম্ভব?


2
আপনি উপরে পোস্ট করা কোডটি সম্পাদনা করেছেন? কারণ আপনি না revisionsএর মধ্যে supportsঅ্যারের, তাই Autosaves আপনার "Givings" পোস্ট টাইপ জন্য অক্ষম করা উচিত
onetrickpony

উত্তর:


17

এটি একটি সহজ :)

add_action( 'admin_enqueue_scripts', 'my_admin_enqueue_scripts' );
function my_admin_enqueue_scripts() {
    if ( 'your_post_type' == get_post_type() )
        wp_dequeue_script( 'autosave' );
}

পুরোপুরি পরিষ্কার নয়। যদি আপনি শিরোনাম ইনপুট এর অধীনে লাইনে permaink প্রাকদর্শন করতে post.js চান তবে এই স্ক্রিপ্টটির প্রয়োজন। এটি নতুন পোস্টগুলিতে বিশেষত লক্ষণীয়, যেহেতু পার্মালিঙ্ক লাইনটি অটোসেজ ছাড়াই অদৃশ্য থাকে। একটি কার্যপ্রণালী হ'ল একটি স্ক্রিপ্ট তৈরি করা যা অটোসোভ.জেসের প্রয়োজনীয় জিনিস এবং ফাংশনগুলিতে স্ট্যাব করে।
কিচিন

4

দৃশ্যত অটোস্যাভ জাভাস্ক্রিপ্ট ডি-নিবন্ধভুক্ত করা অটোস্যাভ রুটিন চলমান বন্ধ করবে। অটোস্যাভগুলি সেই পোস্টের ধরণের হয়ে ওঠার ক্ষমতাটি অগত্যা অক্ষম করবে না, তবে এটি দেশী অটোস্যাভ স্ক্রিপ্টটি বন্ধ করে দেবে।

এটি একটি নিখুঁত সমাধান নয় তবে এটির পছন্দসই প্রভাব থাকতে হবে।

function wpse5584_kill_autosave_on_postype( $src, $handle ) {
    global $typenow;
    if( 'autosave' != $handle || $typenow != 'your-post-type-here' )
        return $src;
    return '';
}
add_filter( 'script_loader_src', 'wpse5584_kill_autosave_on_postype', 10, 2 );

আশা করি এইটি কাজ করবে...

সম্পাদনা করুন: উপরের কোডটি সহ, সেই ধরণের পোস্ট তৈরির স্ক্রিনে থাকা অবস্থায় আপনি পৃষ্ঠার উত্সে নিম্নলিখিতটি দেখতে পাবেন ..

<script type='text/javascript'>
/* <![CDATA[ */
var autosaveL10n = {
    autosaveInterval: "60",
    previewPageText: "Preview this Page",
    previewPostText: "Preview this Post",
    requestFile: "http://yoursite/wp-admin/admin-ajax.php",
    savingText: "Saving Draft&#8230;",
    saveAlert: "The changes you made will be lost if you navigate away from this page."
};
try{convertEntities(autosaveL10n);}catch(e){};
/* ]]> */
</script>
<script type='text/javascript' src=''></script>

ভেরিয়েবলগুলি আমরা এখানে যা দেখছি তা নয়, এটি স্ক্রিপ্টটি নীচে রয়েছে, এসআরসি এখনই কোথাও পয়েন্ট করছে তা লক্ষ্য করুন (এটি মূলত অটোসোভ.জেএস ফাইলের দিকে নির্দেশ করছিল)।

আপনি কি উপরের মতো কিছু দেখতে পাচ্ছেন, বা অটোসোভ.জেএস ফাইলে যাওয়ার পথে এসসিআর এখনও লেখা হচ্ছে?

সম্পাদনা 2: আমি এটাকেই কন্টেনেট স্ক্রিপ্টগুলি বন্ধ করে দেখছি।

<script type='text/javascript' src='http://example/wp-admin/load-scripts.php?c=0&amp;load=hoverIntent,common,jquery-color,schedule,wp-ajax-response,suggest,wp-lists,jquery-ui-core,jquery-ui-sortable,postbox,post,word-count,thickbox,media-upload&amp;ver=e1039729e12ab87705c047de01b94e73'></script>

লক্ষ্য করুন যে অটোস্যাভ স্ক্রিপ্টটি এখনও বাদ দেওয়া হচ্ছে .. (এখন পর্যন্ত আমি আপনার সমস্যার পুনরুত্পাদন করতে অক্ষম) ..

আমার দেওয়া কোডটি আপনি কোথায় রাখছেন?


ধন্যবাদ !! সেখানে কি একাধিক পোস্ট প্রকার স্থাপন করা সম্ভব? বা প্রতিটি সিপিটির জন্য আমাকে কি এটি করতে হবে?
মার্ক

লজ্জা। এটি একটি সিপিটি-র জন্য কাজ করে না। আমি এখনও এটি পাচ্ছি: cl.ly/3gTR - যা কাস্টম ক্ষেত্রগুলি সাফ করছে।
মার্ক

পৃষ্ঠার উত্সটি দেখুন এবং দেখুন অটোসোভ.জেএস ফাইলটি এখনও আছে কিনা, যদি তা এখনও সেখানে থাকে তবে ফিল্টারটি প্রত্যাশিতভাবে কাজ করছে না (বা আমি কিছু অনুপস্থিত) .. দ্রুত সম্পাদনা: আমার পক্ষে কাজ করার জন্য মনে হচ্ছে ঠিক আছে, আপনার পোস্টের ধরণের সাথে মিলের জন্য আপনি কি নমুনা কোডের পাঠ্যটি পরিবর্তন করতে ভুলবেন না?
t31os

হ্যাঁ আমি আবার চেষ্টা করব এবং উত্সটি দেখব। এবং যদি আমি একাধিক পোস্ট ধরণের করতে চাই তবে কী হবে?
মার্ক

1
আপনি বলেছেন যে এটি একটি নিখুঁত সমাধান নয়, তবে এটি একটি ভাল সমাধানও নয় :)
কোভসেনিন

1

আমি যে প্লাগইনগুলি রক্ষণ করি তার মধ্যে আমার কেবল এটির সমস্যা ছিল এবং আমরা কেবল আমাদের পৃষ্ঠাগুলিতে (ডাব্লুপিএসসি-পণ্য এবং পোস্ট বা পৃষ্ঠায় নেই) ছিল কিনা তা পরীক্ষা করে দেখার সিদ্ধান্ত নিয়েছিলাম এবং তারপরে আমরা কেবল অটোস্যাভ স্ক্রিপ্টটি বাতিল করে দিয়েছি, সুতরাং, , আউট সিপিটি হ'ল 'ডাব্লুপিএসসি-প্রোডাক্ট' এবং আমাদের ফাংশন (সম্পর্কযুক্ত কোড অপসারণ এরকম কিছু দেখাচ্ছে:

function admin_include_css_and_js_refac( $pagehook ) {
    global $post_type, $current_screen;
    if($post_type == 'wpsc-product' )
    wp_deregister_script( 'autosave' );         
}
add_action( 'admin_enqueue_scripts', 'admin_include_css_and_js_refac' );

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