আমি ট্যাগ নামে কীভাবে কমা দিতে পারি?


15

আমি ট্যাগ নামে কমা অনুমতি দিতে চান? উদাহরণস্বরূপ, "hello, world"বা "portland, or"তবে ওয়ার্ডপ্রেস তাদের আলাদা করে রাখে। আমি বিভাগগুলি থেকে এটি করতে পারি:

চিত্র http://img839.imageshack.us/img839/6869/picturepp.png

এবং এটা জরিমানা দেখায়। তবে পোস্টগুলি সাইডবার থেকে যুক্ত কিছু এখানে ঠিক দেখা যাচ্ছে না:

চিত্র http://img52.imageshack.us/img52/4950/picture1oax.png

এখানে এটি নিয়ে কিছু আলোচনা রয়েছে: http://core.trac.wordpress.org/ticket/14691 তবে দেখে মনে হচ্ছে এটি কমপক্ষে কিছু সময়ের জন্য সমাধান হতে পারে না।

ইতিমধ্যে, আমি বিভাগ পৃষ্ঠা থেকে বিভাগ যুক্ত করার চেয়ে সহজ সমাধান খুঁজছি।

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

আমি কোর নিজেই প্যাচ করতে হবে কিনা আমি যত্নশীল না। আদর্শভাবে আমি একটি প্লাগইন লিখতে পারতাম, তবে কিছু কোডের সন্ধানের পরে আমি বুঝতে পারি না যে এটি কোথায় পরিচালিত হয়।

হ্যাকিং শুরু করার জন্য কারও কাছে কোনও সমাধান, বা কী ফাংশন এবং জাভাস্ক্রিপ্ট সম্পর্কিত টিপস রয়েছে? আমি কোথায় কোড সন্ধান শুরু করবেন তা নিশ্চিত নই।


1
এটি অর্জনের জন্য কোনও ভাগ্য? আমিও এর সমাধান খুঁজছি।
সুপারট্রু

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

1
কোরটি কখনই সংশোধন করবেন না;)
জ্যারেড

2
@ জ্যারেড - কোরটি সংশোধন করা ঠিক আছে - যতক্ষণ আপনি আপনার ইস্যু / প্যাচটি কোর.trac.wordpress.org এ জমা দিন এবং আপনার ইনস্টলেশনটিতে প্যাচটি বজায় রাখার ক্ষেত্রে ঠিক আছে যতক্ষণ না এটি (আশা করি) কোরটিতে টানা না যায়;)
সিডব্লিউ

সেক্ষেত্রে আপনি ঠিক বলেছেন। :)
জেয়ার্ড

উত্তর:


9

কোনও হ্যাকিংয়ের দরকার নেই - ধন্যবাদ: হুকস।

হুকস একটি সুন্দর সমন্বয় সঙ্গে সমস্যা ঠিক করার অনুমতি দেয়

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

কোডটি এখানে:

// filter for tags with comma
//  replace '--' with ', ' in the output - allow tags with comma this way
//  e.g. save tag as "Fox--Peter" but display thx 2 filters like "Fox, Peter"

if(!is_admin()){ // make sure the filters are only called in the frontend
    function comma_tag_filter($tag_arr){
        $tag_arr_new = $tag_arr;
        if($tag_arr->taxonomy == 'post_tag' && strpos($tag_arr->name, '--')){
            $tag_arr_new->name = str_replace('--',', ',$tag_arr->name);
        }
        return $tag_arr_new;    
    }
    add_filter('get_post_tag', 'comma_tag_filter');

    function comma_tags_filter($tags_arr){
        $tags_arr_new = array();
        foreach($tags_arr as $tag_arr){
            $tags_arr_new[] = comma_tag_filter($tag_arr);
        }
        return $tags_arr_new;
    }
    add_filter('get_terms', 'comma_tags_filter');
    add_filter('get_the_terms', 'comma_tags_filter');
}

সেই বিষয়টিতে আমার ব্লগ পোস্টে কিছু অতিরিক্ত বিবরণও সহায়তা করতে পারে .. http://blog.foobored.com/all/wordpress-tags-with-commas/

শুভেচ্ছা, অ্যান্ডি


এটি ভেঙে যাবে। কমা একটি স্থির স্ট্রিং নয়, এটি অনুবাদ করা যেতে পারে। _x( ',', 'tag delimiter' )আসল ডিলিমিটার ধরতে ব্যবহার করুন।
ফুসিয়া

আমি এটি এখনও পরীক্ষা করি নি তবে এটি দেখতে ভাল লাগছে - ধন্যবাদ
cwd

আপনার সাইটে আপনার কাস্টম ট্যাক্সও রয়েছে, আমি আপনাকে পরামর্শ দিয়েছি যে কারও জন্য এটির ফাংশন নাম পরিবর্তন করতে হবে। কাস্টম কোডটিতে আপনি লিখেছেন: 'কমা_ট্যাগ_ফিল্টার'-এর পরিবর্তে কমা_ট্যাগ_ফিল্টার যা কোডকে বেশ ব্যথা করে। সব ভাল কাজ।
ডেভিড এইচ

1

প্রোগ্রামের মাধ্যমে কমা দিয়ে ট্যাগগুলি সংরক্ষণ করা সম্ভব এবং খুব সহজ।

কল করার সময় wp_set_post_terms( $post_id, $terms, $taxonomy ), আপনি যদি স্ট্রিং সরবরাহ করেন তবে এটি একটি অ্যারেতে বিস্ফোরিত হবে। যদি আপনি আপনার $termsঅ্যারে হিসাবে সরবরাহ করেন তবে অ্যারের প্রতিটি আইটেম একাধিক পদে বিভক্ত না হয়ে এটি নিজস্ব শর্ত হিসাবে সরবরাহ করা হবে।

// Example term with comma.
$terms = 'Surname, Given Names';
// Creates and/or assigns multiple terms separated by a comma.
wp_set_post_terms( $post_id, $terms, $taxonomy );
// Creates and/or assigns a single term with a comma.
wp_set_post_terms( $post_id, (array) $terms, $taxonomy );

উভয় wp_insert_postএবং পরে সেট করা থাকে তখন wp_update_postব্যবহার করুন ।wp_set_post_terms$arg tax_input

// Ensure $terms is an array.
$args['tax_input'][$taxonomy] = (array) $terms;
$post_id = wp_insert_post( $args );

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

/* Example JSON config snippet for an ACF Pro Export/Import. */
/* Most likely config for most of these situations: "allow_null" */
/* and "field_type" may need to be adjusted depending on the situation. */
{
    "type": "taxonomy",
    "field_type": "multi_select",
    "allow_null": 1,
    "add_term": 1,
    "save_terms": 1,
    "load_terms": 1
}

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

// Register Custom Taxonomy args - disable default UI in quick edit.
$args['show_in_quick_edit'] = false;
register_taxonomy( $taxonomy, (array) $post_types, $args );

কেবল একটি নোংরা ফিক্সের কথা ভেবেছিলেন (এটি এখনও আমার পরীক্ষা করা হয়নি), তবে আপনি এমন একটি ফিল্টার যুক্ত করতে পারেন যা সবসময় শর্তগুলিতে স্যানিটাইজ করে দেবে, সেগুলি সমস্তগুলিকে অ্যারেতে রূপান্তরিত করে। add_filter( 'pre_tax_input', function( $tax_input ) { return (array) $tax_input; } );তবে এটি আপনাকে একবারে একটি মেয়াদ জমা দেওয়ার অনুমতি দেবে।
শন ককরিল

0

আপনি মাউস ফিল্টার ব্যবহার করুন।

উদাহরণস্বরূপ, আপনি যদি একটি ট্যাগ ক্লাউডে প্রতিটি ট্যাগের পরে কমা যোগ করতে চান তবে নিম্নলিখিতটি আপনার ফাংশনগুলিতে রেখে দিতে পারেন ph php

function myfunc_filter_tag_cloud($args) {
    $args['smallest'] = 18;
    $args['largest'] = 32;
    $args['unit'] = 'px';
    $args['separator']= ', ';
    return $args;
}
add_filter ( 'widget_tag_cloud_args', 'myfunc_filter_tag_cloud');

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

0

আপনার সমাধানটি এখানে রাখছি। 2614 লাইনে মনোযোগ দিন:

    /**
2588   * Updates the cache for Term ID(s).
2589   *
2590   * Will only update the cache for terms not already cached.
2591   *
2592   * The $object_ids expects that the ids be separated by commas, if it is a
2593   * string.
2594   *
2595   * It should be noted that update_object_term_cache() is very time extensive. It
2596   * is advised that the function is not called very often or at least not for a
2597   * lot of terms that exist in a lot of taxonomies. The amount of time increases
2598   * for each term and it also increases for each taxonomy the term belongs to.
2599   *
2600   * @package WordPress
2601   * @subpackage Taxonomy
2602   * @since 2.3.0
2603   * @uses wp_get_object_terms() Used to get terms from the database to update
2604   *
2605   * @param string|array $object_ids Single or list of term object ID(s)
2606   * @param array|string $object_type The taxonomy object type
2607   * @return null|bool Null value is given with empty $object_ids. False if
2608   */
2609  function update_object_term_cache($object_ids, $object_type) {
2610      if ( empty($object_ids) )
2611          return;
2612  
2613      if ( !is_array($object_ids) )
2614          $object_ids = explode(',', $object_ids);
2615  
2616      $object_ids = array_map('intval', $object_ids);
2617  
2618      $taxonomies = get_object_taxonomies($object_type);
2619  
2620      $ids = array();
2621      foreach ( (array) $object_ids as $id ) {
2622          foreach ( $taxonomies as $taxonomy ) {
2623              if ( false === wp_cache_get($id, "{$taxonomy}_relationships") ) {
2624                  $ids[] = $id;
2625                  break;
2626              }
2627          }
2628      }
2629  
2630      if ( empty( $ids ) )
2631          return false;
2632  
2633      $terms = wp_get_object_terms($ids, $taxonomies, array('fields' => 'all_with_object_id'));
2634  
2635      $object_terms = array();
2636      foreach ( (array) $terms as $term )
2637          $object_terms[$term->object_id][$term->taxonomy][$term->term_id] = $term;
2638  
2639      foreach ( $ids as $id ) {
2640          foreach ( $taxonomies  as $taxonomy ) {
2641              if ( ! isset($object_terms[$id][$taxonomy]) ) {
2642                  if ( !isset($object_terms[$id]) )
2643                      $object_terms[$id] = array();
2644                  $object_terms[$id][$taxonomy] = array();
2645              }
2646          }
2647      }
2648  
2649      foreach ( $object_terms as $id => $value ) {
2650          foreach ( $value as $taxonomy => $terms ) {
2651              wp_cache_set($id, $terms, "{$taxonomy}_relationships");
2652          }
2653      }
2654  }
2655  

ভিতরে ডাব্লুপি-অন্তর্ভুক্ত / ট্যাক্সোনমি.এফপি । শুভকামনাটি কোড হ্যাকিংয়ের জন্য রয়েছে। কোনও হুক নেই এটি হার্ড কোডেড ... দুঃখিত। আমি মনে করি যে কোড হ্যাক করা আপাতত আপনার একমাত্র বিকল্প।


2
ডব্লিউপি কোর হ্যাক করা সম্ভবত ভাল ধারণা নয়।
chrisguitarguy

2
আমি জানি! কিন্তু তিনি প্রশ্ন জিজ্ঞাসা। আমি শুধু উত্তর দিয়েছি।
আসফ চের্তকফ

হ্যাঁ, তবে হ্যাকিং কোরটি ভুল উত্তর। -1
EAMAN

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

@ সিডব্লিউড, আপনার স্বাগতম :) আশা করি এইটি কাজ করবে.
আসফ চের্তকফ

0

ট্যাগ নামের কমাগুলি সঠিকভাবে কাজ করবে না কারণ, কোনও পোস্টে ট্যাগ যুক্ত করার সময়, ওয়ার্ডপ্রেস এটিকে একাধিক কীওয়ার্ড হিসাবে পার্স করবে, কমাতে ভেঙে।

একটি সহজ ফিক্স:

ব্যবহারের ,( কমা জন্য HTML কোড ) একটি নিয়মিত কমা পরিবর্তে।

তারপর:

  • , পোস্টগুলির ভিতরে একটি ভাল কমা হিসাবে প্রদর্শিত হবে, ট্যাগ পৃষ্ঠার শিরোনাম এবং অন্যান্য জায়গাগুলির একগুচ্ছ।
  • এটি ,ট্যাগের নাম লেখার সময় অ্যাডমিন ইন্টারফেসের ভিতরে যেমন কাঁচা প্রদর্শিত হবে ।

এইচটিএমএল সত্তা ব্যবহার করে এফওয়াইআই ,কাজ করে না।

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