কাস্টম মেটা বাক্সগুলির সাথে একটি স্লাইডশো কাস্টম পোস্ট প্রকার তৈরিতে সহায়তা করবেন?


16

আমার কাস্টম পোস্ট ধরণের "স্লাইডশো" (এই পোস্টের ধরণটি ইতিমধ্যে তৈরি হয়েছে) এর জন্য আমাকে একটি কাস্টম পোস্ট মেটা বক্স (এস) তৈরি করতে হবে। প্রতিটি মেটাবক্স প্রতিটি স্লাইড স্লাইডে সামগ্রীটি ধারণ করবে এবং এটি সম্পর্কিত কাস্টম ক্ষেত্রে সংরক্ষণ করবে। প্রতিটি মেটাবক্সে নিম্নলিখিত ক্ষেত্রগুলি থাকা উচিত:

  • শিরোনাম (পাঠ্য ক্ষেত্র)
  • চিত্র (হয় img URL এর জন্য একটি পাঠ্য ক্ষেত্র বা পোস্টের সাথে সংযুক্ত চিত্রগুলির থাম্বনেইলগুলি আদর্শভাবে ড্রপডাউন তালিকা দেখায়)
  • এম্বেড কোড (পাঠ্য অঞ্চল)
  • বর্ণনা (ওয়াইসিউইগ)
  • স্লাইডটি আড়াল করুন (কোনও স্লাইড মোছা না করে অস্থায়ীভাবে আড়াল করার জন্য ব্যবহার করতে চেকবক্স)
  • স্লাইড মুছুন (এই স্লাইডটি পূরণ করা পোস্ট মেটা ক্ষেত্রগুলির সামগ্রী মুছে ফেলা বাটন)

আমি অন্য কোথাও এমন একটি বোতামও চাই যা আমাকে "স্লাইড যোগ করার" অনুমতি দেয় তাই এটি ক্লিক করা হলে এটি আরও একটি "স্লাইড" কাস্টম মেটা বক্স যুক্ত করে যা প্রথমটির সদৃশ তবে প্রতিটি কাস্টম পোস্ট মেটা ক্ষেত্রে একটি বর্ধিত সংখ্যা যুক্ত করে। আমার কাছে সবেমাত্র 15 টি মেটাবক্স রয়েছে এবং স্লাইডশো টেমপ্লেটটি এমনভাবে সেট আপ করা হয়েছে যে যদি মেটাবক্সগুলির মধ্যে কেবল 5 টি পূরণ করা হয় তবে কেবল 5 টি স্লাইড প্রদর্শন করা হবে।

অবশেষে, আমি স্লাইডগুলি পুনরায় অর্ডার করতে সক্ষম হতে চাই, "টেনে আনুন এবং ফেলে দিন" বা অন্য কোনও পাঠ্য ক্ষেত্রের মাধ্যমে যাতে আমি ক্রম নম্বর টাইপ করতে পারি।

"মোর ফিল্ডস" প্লাগইন এবং রাস্টের কিছু কোড সহায়তা দিয়ে যেখানে এটি প্রয়োজন সেখানে আমি এটি প্রায় পেয়েছি। "আরও ক্ষেত্রগুলি" প্লাগইন সহ আমার প্রতিটি মেটাবক্সে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:

  • শিরোনাম (পাঠ্য ক্ষেত্র)
  • চিত্র (পোস্টের সাথে সংযুক্ত ছবিগুলির একটি ড্রপডাউন তালিকা)
  • এম্বেড কোড (পাঠ্য অঞ্চল)
  • বর্ণনা (ওয়াইসিউইগ)
  • স্লাইডটি আড়াল করুন (কোনও স্লাইড মোছা না করে অস্থায়ীভাবে আড়াল করার জন্য ব্যবহার করতে চেকবক্স)

"আরও ক্ষেত্রগুলি" প্লাগইনটির মাধ্যমে আমার কীভাবে এটি সেটআপ করা হয়েছে তার একটি স্ক্রিনশট এখানে:

বিকল্প পাঠ

এর সাথে সমস্যাটি হ'ল একবার স্লাইড তৈরি হয়ে যাওয়ার পরে আর কোনও উপায় নেই কারণ "আরও ক্ষেত্রগুলি" <?php delete_post_meta($post_id, $key, $value); ?>কোথাও ব্যবহার করে না । প্লাগইনটির সাথে অন্য সমস্যাটি হ'ল এটি খুব অবিশ্বাস্য এবং আপডেটগুলির সাথে ঘন ঘন বিরতি হয়।

আমি আমার নিজস্ব কাস্টম মেটাবক্সের সাথে একই জাতীয় সমাধান প্রয়োগ করতে সক্ষম হয়েছি:

  • শিরোনাম (পাঠ্য ক্ষেত্র)
  • চিত্র (img URL এর জন্য পাঠ্য ক্ষেত্র)
  • এম্বেড কোড (পাঠ্য অঞ্চল)
  • বর্ণনা (পাঠ্য অঞ্চল)
  • স্লাইডটি আড়াল করুন (কোনও স্লাইড মোছা না করে অস্থায়ীভাবে আড়াল করার জন্য ব্যবহার করতে চেকবক্স)

এই প্রয়োগের সাথে আমি একাধিক TinyMCE ক্ষেত্রগুলি কাজ করতে বা চিত্রের ড্রপডাউন বাক্সটি পেতে পারি না। যতক্ষণ না আমি কোডটি যে প্রথম metabox যা বিন্দু আমি ক্ষেত্র যেখানে TinyMCE বোতাম হওয়া উচিত উপরে এই ত্রুটি অধিকার পেতে ক্রমবর্ধমান কপি তৈরি যোগ TinyMCE কোড কাজ বলে মনে হয়: Warning: array_push() [function.array-push]: First argument should be an array...

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

আমি সাইডবারের অন্তর্নির্মিত "বৈশিষ্ট্যযুক্ত চিত্র" বাক্সের মাধ্যমে চিত্র আপলোডগুলি পরিচালনা করছি যদিও আমি রাইট প্যানেলের শীর্ষে কেবল এমন একটি কাস্টম মেটাবক্স যা তাতে "চিত্রগুলি আপলোড করুন" বলে কিছু মনে করব না।

শেষ পর্যন্ত আমি এর মতো স্লাইডশোটি খুঁজছি: http://www.nytimes.com/slideshow/2010/08/10/science/20100810angier-1.html । আমি চাই আমার একটি ছবির পরিবর্তে স্লাইডে থাকা সামগ্রী হিসাবেও একটি ভিডিও থাকতে সক্ষম হোক। আমার লেখকদের জন্য অ্যাডমিন প্যানেলটি ব্যবহার করার জন্য আমার একটি স্বজ্ঞাত এবং সহজ দরকার (এগুলি খুব প্রযুক্তিবিদ নয় এবং এইচটিএমএল এবং / অথবা শর্টকোড ব্যবহার করে নির্ভরযোগ্য নয়)। উদাহরণ থেকে এটি স্পষ্ট না হলে প্রতিটি স্লাইডে নতুন পৃষ্ঠা দর্শন তৈরি করা উচিত।

ড্র্যাগ'নড্রপ পুনরায় অর্ডারিং কোনও উচ্চ অগ্রাধিকার নয় তবে এটি দুর্দান্ত। আমি সত্যিই ভালভাবে পরিচালনা করে এমন একটি প্লাগইন পেয়েছি: স্লাইডডেক । দুর্ভাগ্যক্রমে প্লাগইনটি আমার প্রয়োজন অনুসারে নয় তবে তারা স্লাইডগুলির ক্রম হ্যান্ডেল করার পদ্ধতিটি বেশ চটুল। এটি সাইডবারের একটি পৃথক মেটাবক্স যা আপনাকে স্লাইডগুলি নিজের পছন্দ মতো ক্রমটিতে টেনে আনতে দেয়। "স্লাইড যোগ করুন" বোতামে ক্লিক করে আপনি রাইড প্যানেলে আরও একটি স্লাইড মেটাবক্স যুক্ত করে আপনি কীভাবে স্লাইডগুলি যুক্ত করবেন এটিও এটি। এখানে একটি স্ক্রিন শট হয়:

বিকল্প পাঠ

আপনি ওয়ার্ডপ্রেস সংগ্রহস্থলে ক্রিয়াকলাপে এর আরও স্ক্রিনশট দেখতে পারেন ।

আমার সমস্ত কোড এখানে:

আমার স্লাইডশো পোস্টের ধরণ এবং স্লাইডশো পৃষ্ঠাটি সেট আপ করার ফাংশনগুলি: http://loak.pastebin.com/g63Gf186

ডিলাক্সব্লগিংটপস ডটকম (ডিবিটি) এর মূল কোড যা আমি আমার মেটাবক্সকে বন্ধ করে রেখেছি: http://loak.pastebin.com/u9YTQrxf

আমাকে একই মেটাবক্সের ইনক্রিমেন্টাল সংস্করণ দেওয়ার জন্য যে ডিবিটি কোডটি আমি সংশোধন করেছি সেটির সংস্করণ: http://loak.pastebin.com/WtxGdPrN

ক্রিস বারব্রিজ টিনিএমসিই-র একাধিক দৃষ্টান্তের জন্য মঞ্জুরি দেওয়ার জন্য তৈরি ডিবিটি কোডের একটি পরিবর্তিত সংস্করণ : http://loak.pastebin.com/Mqb3pKhx এই কোডের সাহায্যে টিনিএমসিইগুলি কাজ করে।

বার্ব্রিজের কোডটিতে আমার পরিবর্তন যা আমার বৃদ্ধি এবং এমন একটি ক্ষেত্রকে অন্তর্ভুক্ত করার চেষ্টা করে যা আপনাকে পোস্টের সাথে সংযুক্ত সমস্ত চিত্রের ড্রপডাউন তালিকা থেকে চিত্রটি বেছে নিতে দেয়: http://loak.pastebin.com/xSuenJTK এই প্রয়াসে, TinyMCE ভাঙ্গা এবং ড্রপডাউন কাজ করে না।

এটি সম্ভবত কোনও ব্যাপার নয় তবে কেবল আপনি যদি অবাক হয়ে থাকেন তবে কাস্টম পোস্ট মেটা থেকে এম্বেড কোডটি টানতে, এটির আকার পরিবর্তন করতে এবং পোস্টটিতে সন্নিবেশ করানোর জন্য আমি যে কোডটি ব্যবহার করি তা এখানেই রয়েছে: http://loak.pastebin.com / n7pAzEAw

প্রকল্পের বর্তমান অবস্থা প্রতিফলিত করতে এবং মন্তব্যে পোস্ট করা প্রশ্নের উত্তরগুলির জন্য এটি মূল প্রশ্নের একটি সম্পাদিত সংস্করণ। এই উপর অনুদান রাখার জন্য Chris_O ধন্যবাদ । এছাড়াও, থিমহাইব্রিড ডটকম ফোরামে আমাকে প্রচুর সাহায্য করার জন্য রাস্ট এবং জাস্টিনকে ধন্যবাদ জানাই । আমি এটিতে ঘন্টা এবং ঘন্টা ব্যয় করেছি এবং আটকে আছি (এই প্রশ্নের জন্য আমি কয়েক ঘন্টা একা কাটিয়েছি)। কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।


আপনি কি কোনও একক চিত্র আঁকতে পারেন যা পুরো চিত্রটি স্কেচের মতো দেখায়? আমি মনে করি এটি আপনার প্রয়োজনগুলি আরও ভালভাবে বুঝতে সহায়তা করে।
hakre

আমি নীচে কিছু উদাহরণ যুক্ত করেছি। এটি যদি যথেষ্ট পরিমাণে পরিষ্কার না হয় তবে আমাকে জানতে দিন।
ম্যাট

এটি এখনও পরিষ্কার হয় না?
ম্যাট

যে কেউ? এটা কি চালু আছে?
ম্যাট

@ হাক্রে, আপনি সেখানে?
ম্যাট

উত্তর:


6

জিনিসগুলির চেহারা থেকে, আপনার নিরাপদ বাজি এবং সবচেয়ে সহজ রুট হ'ল বিশেষত আপনার ব্যবহারের জন্য আরও ক্ষেত্রের প্লাগইনটি কাঁটাচামচ করা। আপনার কাঁটাচামচ যে দুটি বড় বৈশিষ্ট্য আমি দেখতে পাচ্ছি তা হ'ল একটি ক্ষেত্র "কারখানা" এবং একটি ড্রাগন এবং ড্রপ ইন্টারফেস।

একাধিক ক্ষেত্র

আমার পরামর্শটি হ'ল ওয়ার্ডপ্রেস উইজেট শ্রেণীর দিকে নজর দেওয়া এবং এটি আপনার ফিল্ড ফ্যাক্টরির মডেল হিসাবে ব্যবহার করা - মূলত, একবার আপনার জন্য কাঠামো তৈরি হয়ে গেলে কোনও ক্ষেত্রের একাধিক উদাহরণ তৈরির সক্ষমতা ধার করুন।

একাধিক উইজেটগুলি কীভাবে একটি সাইডবারে কাজ করে তার মূল বিষয়টি:

  • আপনি WP_Widgetক্লাসটি বাড়িয়ে একবারে প্রতিটি উইজেটের কোড নির্ধারণ করেন ।
  • তারপরে, আপনি উইজেটের যতগুলি অনুলিপি তৈরি করতে পারেন
    • প্রতিটি উইজেটের নির্দিষ্টকরণ বিকল্প টেবিলে সিরিয়ালযুক্ত ডেটা হিসাবে সংরক্ষণ করা হয়
  • আপনি প্রতিটি উইজেটকে কাস্টমাইজ করতে পারেন, একটি সাধারণ deleteকমান্ড দিয়ে এগুলি সরিয়ে ফেলতে পারেন এবং উপস্থিত অবস্থান ড্রাগন-এন্ড ড্রপ ইন্টারফেসের মাধ্যমে তাদের অবস্থান নির্ধারণ করতে পারেন licit

টানা এবং পতন

আবারও, আমি অনুপ্রেরণার জন্য ওয়ার্ডপ্রেস উইজেট সিস্টেমটি দেখার পরামর্শ দিই। আমরা ইতিমধ্যে সেখানে একটি মোটামুটি স্বজ্ঞাত ড্র্যাগ এবং ড্রপ ইন্টারফেস সেট আপ করেছি, সুতরাং অন্য কোথাও একই কোডটির বেশিরভাগটি পুনরায় উদ্দেশ্য করে নেওয়া মোটামুটি সহজ হবে। অথবা, আপনি যদি সত্যিই অভিনব হতে চান, আপনি একটি পৃথক কাস্টম মেটা ক্ষেত্রের মধ্যে আপনার নিজের ড্রাগন এবং ড্রপ সিস্টেমটি প্রয়োগ করতে পারেন।

সুতরাং প্রতিটি স্লাইড পোস্টের সাথে লিঙ্কযুক্ত একটি কাস্টম মেটা বক্স দ্বারা সংজ্ঞায়িত করা হবে। স্লাইডগুলির ক্রমটি একটি পৃথক কাস্টম মেটা বাক্স দ্বারা সেট করা হবে যা পোস্টের সাথেও যুক্ত। আমি এজেএক্সের মাধ্যমে স্লাইড আপডেটগুলি জমা দেওয়ার পরামর্শ দিচ্ছি যাতে আপনি তথ্যের উপর ভিত্তি করে স্লাইড অর্ডার মেটা বক্সকে গতিশীলভাবে আপডেট করতে পারেন (এটি ম্যানুয়ালি "আপডেট" মারতে বাধা দেয় এবং চারপাশের জিনিসগুলি সরিয়ে দেওয়ার আগে পৃষ্ঠাটি পুনরায় লোড হওয়ার জন্য অপেক্ষা করুন)।

jQuery UI এর একটি দুর্দান্ত " ড্রাগগযোগ্য " ইন্টারফেস রয়েছে যা আপনি এই কাস্টম মেটা বাক্সের মধ্যে সহজেই আপনার উদ্দেশ্যে হেরফের করতে পারেন। শক্ত অংশটি ইন্টারফেসটি তৈরি করছে না, এটি মেটা বাক্স এবং পৃষ্ঠার অন্য কোথাও স্লাইড মেটা বক্স সংগ্রহের মধ্যে সামঞ্জস্যপূর্ণ, সঠিক যোগাযোগ পাচ্ছে ।

সংক্ষেপে

আমি আপনার পোস্ট থেকে যা সংগ্রহ করেছি তা হ'ল আপনার কিছুটা কার্যক্ষম সমাধান রয়েছে:

  • আপনি আরও ফিল্ডস উইজেটের মাধ্যমে আপনার কাস্টম পোস্ট প্রকারে 15 টি কাস্টম ফিল্ড যুক্ত করেছেন তবে একটি সেট নম্বর দিয়ে কাজ করার পরিবর্তে ক্ষেত্রগুলি গতিশীলভাবে যুক্ত / মুছতে চান
  • আপনি এই কাস্টম ক্ষেত্রগুলির ক্রম সামঞ্জস্য করার জন্য একটি উপায় চান যাতে স্লাইডগুলি ক্রমে লোড হয়

আমি যেভাবে এর কাছে পৌঁছেছি তা হ'ল নতুন কাস্টম মেটা ক্ষেত্রগুলি তৈরি করতে আমি বারবার ব্যবহার করতে পারি এমন কোনও ক্লাসে কাস্টম মেটা তৈরি প্রক্রিয়াটি বিমূর্ত করা। তারপরে আমি ক্লাসটি দুই ধরণের মেটা বাক্স আরম্ভ করার জন্য প্রসারিত করব: একটি স্লাইডগুলির জন্য, একটি স্লাইড কাঠামোর জন্য। আমি স্লাইড স্ট্রাকচার মেটা বাক্সে গতিশীলভাবে নতুন স্লাইড মেটা বক্সগুলি তৈরি করার ক্ষমতাও তৈরি করতাম (স্লাইড মেটা বাক্সগুলি তাদের নিজস্ব "মোছা" ক্রিয়া রাখবে)।

পুরো স্লাইডশোটি স্লাইড মেটা বাক্সগুলির সাহায্যে নয়, তবে স্লাইড কাঠামো মেটা বক্স দ্বারা পোস্টের জন্য একটি কাস্টম মেটা ক্ষেত্রের মধ্যে সংরক্ষণ করা হবে - কাস্টম মেটা একটি জ্যাজেড অ্যারে হবে, প্রতিটি স্লাইডের মধ্যে অ্যারে হিসাবে উপস্থাপিত হবে - ইন অর্ডার । কাঠামো মেটা বাক্সে স্লাইডশোর ক্রমটি কাস্টমাইজ করা অ্যারেটিকে পুনর্গঠিত করে পোস্ট মেটাটিকে পুনরায় সংরক্ষণ করতে পারে। আমি স্লাইডশোতে অ্যাক্সেস চাইলে ফিরে পড়ার জন্য আমার কেবল 1 মেটা মান রয়েছে।

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


সাহায্যের জন্য ধন্যবাদ! এই মুহূর্তে এটি আমার দক্ষতার সেট থেকে কিছুটা দূরে তবে শেখার প্রক্রিয়াটির মাধ্যমে একটি ভাল গাইড হিসাবে কাজ করবে। আমি "ক্লাস" সম্পর্কে সচেতন এবং বুঝতে পেরেছি আমি ইতিমধ্যে মেটাবক্স কোডে একটি ক্লাস ব্যবহার করেছি তবে আমি এখনও সেগুলি বুঝতে পারি না। আর একটি জিনিস যা আমি "সচেতন" কিন্তু পুরোপুরি বুঝতে পারি না তা হ'ল অ্যারে ব্যবহার।
ম্যাট 17

মূলসূত্রগুলি প্রথমে নামা সম্পর্কে আপনার পরামর্শটি বোধগম্য হয় তবে আমি কিছু বাস্তব বিশ্বের প্রতিবন্ধকতার বিরুদ্ধে আছি যেগুলি আমাকে উত্পাদন পরিবেশে এনে দেওয়া প্রয়োজন এবং সবচেয়ে গুরুত্বপূর্ণ কারণগুলির মধ্যে একটি হ'ল উইসইভিগ সম্পাদক কারণ অনেক লেখক খুব প্রযুক্তিগত নয় । প্রকল্পটিকে বর্ধিত করে তোলা এবং পথে ক্রাচগুলির উপর নির্ভর করা আমার আপত্তি নেই তবে এই পদ্ধতির স্পষ্টতই স্কেলেবল হওয়া দরকার। এটি বলেছিল এটি আমার কাছে মনে হয়েছে যে "আরও ক্ষেত্রগুলি" প্লাগইন ব্যবহার করা সাময়িক সমাধান হিসাবে কাজ করতে পারে যতক্ষণ না আমি এটি বের করি তবে আমি নিশ্চিত যে
এটির

একটি কাস্টম ক্ষেত্রে পুরো স্লাইডশো সংরক্ষণ করার জন্য আপনার পদ্ধতির। আপনি কি সত্যিই ভাবেন যে এগুলি সবকেই এক ক্ষেত্রে রাখা আরও ভাল? এটি অজ্ঞান লাগতে পারে তবে আমার কাছে মনে হয় ত্রুটিগুলির জন্য আরও অনেক জায়গা রয়েছে যদি ডাব্লুপি প্রতিবার একটি ছোটখাট পরিবর্তন করা হয় তখন পুরো স্লাইডশোটি আবার লিখতে হয়।
ম্যাট

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

আপনি কি বলছেন যে এটি সাইটের সামনের প্রান্তে সময় সাশ্রয় করে? কেন এটি যদি এমন হয় যা যদি একবারে কেবল একটি স্লাইড দেখায়?
ম্যাট

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