মূল মন্তব্যে লিঙ্ক সহ নন-থ্রেড মন্তব্য উত্তর


10

আমি যা অর্জন করতে চাইছি তা ব্যাখ্যা করব।

আমি প্রতিটি মন্তব্যে একটি উত্তর লিঙ্ক সহ নিয়মিত নন-থ্রেডযুক্ত (ফ্ল্যাট / ক্লাসিক) মন্তব্য করতে চাই। কেউ যখন কোনও মন্তব্যে জবাব দেয় তখন উত্তর মন্তব্যটি সর্বশেষ (বা নীচে) সর্বশেষ মন্তব্য হিসাবে শেষ হবে ঠিক যেমনটি এটি ডিফল্ট নন-থ্রেডযুক্ত মন্তব্যে হবে তবে ডিফল্ট নন-থ্রেডযুক্ত মন্তব্যের বিপরীতে উত্তরটির সাথে একটি লিঙ্ক প্রদর্শন করা উচিত মূল মন্তব্য / লেখক।

ওয়ার্ডপ্রেস ফোরামে একটি প্রস্তাবিত সমাধান রয়েছে:

http://wordpress.org/support/topic/reply-to-link-for-chronological-non-threaded-comments

আমি এটি কাজ করতে না। পোস্টারটি কোডের বিভিন্ন টুকরোটি কী ফাইলগুলি দিচ্ছে তা আমি নিশ্চিত নই। আমি কোডটি ব্যবহার করার চেষ্টা করেছি এবং মন্তব্য_পোস্টে একটি ফাংশন হুক করেছি:

add_action('comment_post', 'print_reply_link', 10, 2);

function print_reply_link( $comment_id, $approved ){
  if( $approved ){
    $comment = get_comment( $comment_id );
    if ( $comment->comment_parent ) {
    $parent = get_comment( $comment->comment_parent );
    $parent_link = esc_url( get_comment_link( $comment->comment_parent ) );
    printf( ' in reply to <a href="%1$s">%2$s</a>', $parent_link, $parent->comment_author );
    } 
  }
}

এটি " লেখকের নামের জবাবে" দিয়ে একটি ফাঁকা পৃষ্ঠা ফেরত দিয়েছে । পোস্টটি পুনরায় লোড করার পরে একটি উত্তর মন্তব্য সঠিকভাবে প্রদর্শিত হবে তবে মূল মন্তব্যের কোনও লিঙ্ক ছাড়াই

আমার কোডিং দক্ষতা সত্যিই খুব বেসিক তাই আমার কীভাবে এগিয়ে যাওয়া উচিত তা আমার কোনও ভাল ধারণা নেই। কোন সাহায্যের জন্য খুব কৃতজ্ঞ হবে।


বিষয়বস্তু কি hrefমধ্যে aযে Chrome এ পরিদর্শন উপাদান 'টুল (অথবা আপনার পছন্দের ব্রাউজারে অনুরূপ)' অনুযায়ী উত্তর to` এ 'অনুসরণ করে?
মরিফায়ার

আমি অনেক পরীক্ষার এবং ত্রুটির পরেও সমস্যার সমাধান করেছি। কৌশলটি ছিল সঠিক ক্রমে কোডের টুকরোগুলি এবং মন্তব্য এবং ফাংশন ফাইলগুলিতে স্থান দেওয়া। sমধ্যে %1$sউপায়ে যে আর্গুমেন্ট হিসাবে চিকিত্সা এবং একটি স্ট্রিং হিসাবে উপস্থাপন করা হয়। স্প্রিন্টফ
সারিত্যাশ

3
সাইটটি সুসংহত রাখতে এবং একই সমস্যা নিয়ে আপনার পরে যে কেউ আসে সেটিকে দ্রুত এবং দক্ষতার সাথে কাটিয়ে উঠতে সহায়তা করার জন্য সমাধান হিসাবে আপনি যা করেছিলেন তা আপনার জমা দেওয়া উচিত।
মরিফায়ার

হ্যাঁ যদি আপনি একটি কার্যকরী সমাধান পোস্ট করতে পারেন তবে দুর্দান্ত।
বোরেক বার্নার্ড

1
সম্মত হন, এটি কার্যকরভাবে দেখতে পছন্দ করবেন।
হেলগাটিভিকিং

উত্তর:


4

এটি আমার সমাধান এবং ওয়ার্ডপ্রেস ফোরামে প্রস্তাবিত প্রস্তাবিত সমাধান নয়। এটি মোটামুটি সহজ হতে দেখা যায়, তবে কয়েকটি পদক্ষেপ জড়িত।

1) ডাব্লুপি-অ্যাডমিন-> সেটিংস-> আলোচনায় যান এবং থ্রেডযুক্ত মন্তব্যগুলি স্যুইচ করুন। এটি থ্রেডিং অক্ষম করবে, যা আমরা চাই, তবে আমাদের একটি নির্দিষ্ট মন্তব্যে "জবাব দেওয়ার" ক্ষমতাও সরিয়ে দেবে। আমাদের তা ফিরিয়ে দিতে হবে।

2) নীচের স্ক্রিপ্টটি আপনার থিমের ফাংশন.এফপি বা একটি প্লাগইনে যুক্ত করুন।

function load_script_for_fake_threading() {
    if (is_singular()) wp_enqueue_script('comment-reply');
}
add_action('wp_enqueue_scripts','load_script_for_fake_threading');

3) মন্তব্য মুদ্রণ wp_list_comments একটি কলব্যাক দ্বারা পরিচালিত হয় । TwentyEleven ফাংশন ব্যবহার twentyeleven_comment()তার মধ্যে functions.php। আপনার থিমের কলব্যাক না থাকলে আপনার একটি তৈরি করতে হবে। ডিফল্টরূপে, "ডাব্লুপি-অন্তর্ভুক্ত / মন্তব্য-টেম্পলেট.প্লেপ" -তে ওয়াকার_কমেন্ট ক্লাসের স্টার্ট_েল পদ্ধতির সামগ্রী ব্যবহার করা হয়। এটি অনুলিপি করুন বা থিমের কলব্যাক অনুলিপি করুন এবং এতে ফাংশনটির নতুন নাম দিন fake_threaded_comment

3) আপনার থিমের wp_list_comments ফাংশনটি সন্ধান করুন comments.phpএবং কলব্যাক পরিবর্তন করুন। এটি দেখতে হবে:

wp_list_comments(array('callback'=>'fake_threaded_comment'));

4) এখন আমরা কিছুটা প্রতারণা করতে যাচ্ছি। সেই কলব্যাকে, 'নকল_প্রেমযুক্ত_কমেন্ট', সেখানে মন্তব্য_প্রেমী_লিংক ফাংশনটিতে কল করা উচিত । আমাদের এটিকে সম্পাদনা করতে হবে যাতে আমরা হার্ড-কোডড 'গভীরতা' এবং 'ম্যাক্স_ডেপথ' যুক্তিগুলি পার করছি passing আমরা 'গভীরতা' 1 এ এবং সর্বোচ্চ_পথ 2 এ সেট করছি 2. এটি আমাদের "প্রত্যুত্তর" বোতাম / লিঙ্কটি ফিরে পাবে।

comment_reply_link( 
  array_merge( 
    $args, 
      array( 
        'reply_text' => __( 'Reply <span>&darr;</span>', 
        'themetextdomainname' ), 
        'depth' => 1, 
        'max_depth' => 2 
)));

5) পিতামাতার মন্তব্য লিঙ্ক সেট আপ। পাশাপাশি কলব্যাক ফাংশন আপনি উল্লেখ উল্লেখ থাকতে পারে $comment$comment->comment_parentউত্তর দেওয়া মন্তব্যের আইডি হ'ল এবং get_comment_link($comment->comment_parent)পিতামাতার মন্তব্যের URL দেয় (সম্পূর্ণ অ্যাঙ্কর মার্কআপ নয়)। get_comment($comment->comment_parent)পিতামাতার মন্তব্য ডেটা পাবেন। তো, এরকম কিছু ...

$pcom = get_comment($comment->comment_parent);
echo '<a href="'.get_comment_link($comment->comment_parent).'">This is a reply to '.$pcom->comment_author.'</a>';

এটাই. আপনি এখন নির্দিষ্ট মন্তব্যে মন্তব্য করতে পারেন তবে একবার প্রকাশিত মন্তব্যটি লোড ক্রমের উপর নির্ভর করে মন্তব্য তালিকার শেষে বা মন্তব্যের তালিকার শুরুতে প্রদর্শিত হবে।

ওয়ার্ডপ্রেস ৩.৪.১-তে টোয়েন্টিলেভেনের সাথে পরীক্ষিত (সামান্য পুরানো তবে এটি আমার ডেভ সার্ভারে ইতিমধ্যে রয়েছে)। আমি নিশ্চিত যে থিম বা প্লাগইনগুলি এটি ভাঙ্গতে পারে এমন কিছু জিনিস রয়েছে তবে আমি মনে করি না যে একটি ভাল আচরণযুক্ত থিম বা প্লাগইন এটি ভেঙে ফেলবে।

সেদিনের জন্য আমার সৎকর্ম। কিছু ভুল হলে দয়া করে আমাকে জানান।

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