কীভাবে কোনও পছন্দসই বিভাগে একটি ডিফল্ট আইটেম যুক্ত করবেন?


10

ওয়ার্ডপ্রেস ডিফল্ট শ্রেণীবিন্যাস (বিভাগগুলি) আইটেমটি ডিফল্টরূপে শ্রেণিবদ্ধ করা হয়েছে। কীভাবে নতুন কাস্টম বিভাগে একটি ডিফল্ট আইটেম যুক্ত করবেন?

থিমের functions.php:

// === CUSTOM TAXONOMIES === //
function my_custom_taxonomies() {
    register_taxonomy(
        'block',        // internal name = machine-readable taxonomy name
        'static_content',       // object type = post, page, link, or custom post-type
        array(
            'hierarchical' => true,
            'labels' => array(
                'name' => __( 'Blocks' ),
                'singular_name' => __( 'Block' ),
                'add_new_item' => 'Add New Block',
                'edit_item' => 'Edit Block',
                'new_item' => 'New Block',
                'search_items' => 'Search Block',
                'not_found' => 'No Block found',
                'not_found_in_trash' => 'No Block found in trash',
            ),
            'query_var' => true,    // enable taxonomy-specific querying
            'rewrite' => array( 'slug' => 'block' ),    // pretty permalinks for your taxonomy?
        )
    );
}
add_action('init', 'my_custom_taxonomies', 0);

সম্পাদনা: থিমটি ইনস্টল হওয়ার পরে আমি সেখানে কেবলমাত্র শ্রমশক্তি আইটেমটি রাখতে চাই। এটি কোনও খালি পদটিতে স্বয়ংক্রিয়ভাবে যুক্ত করতে হবে না

উত্তর:


8

এখানে একবার দেখুন:

https://web.archive.org/web/20150403012347/http://wordpress.mfields.org/2010/set-default-terms-for-your-custom-taxonomies-in-wordpress-3-0/

মূলত আপনাকে যা করতে হবে তা হল পোষ্টের শর্তাদি যাচাই করার জন্য সেভ_পোস্ট হুকটি ব্যবহার করা এবং এটি ফাঁকা থাকলে আপনার শ্রেণিবদ্ধ থেকে ডিফল্ট শব্দ যুক্ত করুন।

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

এই উদাহরণ কোডটি কোডেক্স থেকে: http://codex.wordpress.org/Function_References/wp_insert_term

$parent_term = term_exists( 'fruits', 'product' ); // array is returned if taxonomy is given
$parent_term_id = $parent_term['term_id']; // get numeric term id
wp_insert_term(
  'Apple', // the term 
  'product', // the taxonomy
  array(
    'description'=> 'A yummy apple.', 
    'slug' => 'apple', 
    'parent'=> $parent_term_id
  )
);

@ আনু আমার মনে হয় আমি নিজেকে খুব ভালভাবে ব্যাখ্যা করিনি, থিমটি ইনস্টল হওয়ার পরে আমি কেবল সেখানে সেই ট্যাক্সোনমিটি রাখতে চাইছিলাম। এটি খালি থাকলে কোনও পদ নেই।
janoChen

@ জাজোচেন - আমি উত্তর আপডেট করেছি
আনু

@ আনু চমৎকার, আমি আশা করি আমি আপনার উত্তরটি আরও ভোট দিতে পারি। আমি প্রশ্নগুলি সম্পাদনা করেছি। আপনি উপরে যে কোডটি লিখেছেন তা আমার ঠিক কোথায় রাখা উচিত?
জ্যানোচেন

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

1
আপনি নিশ্চিত যে এই ফাংশনটিতে সন্নিবেশটি চালাতে চান, এটি init, অর্থাৎ চলে। প্রতি পৃষ্ঠায়, আমি মনে করি না যে প্রতিবারই কোনও পৃষ্ঠা বলা হয় আপনি কি সন্নিবেশটি চালাতে চান? সম্ভবত সন্নিবেশ ফাংশনটি শূন্য / মিথ্যা প্রত্যাশা করে যদি সেই নামের সাথে কোনও মিলের শব্দটি ইতিমধ্যে বিদ্যমান থাকে (তবে আমি দেখতে পাইনি) তবে এটি সমস্ত যা কিছুটা অযাচিত বলে মনে হয় (কেন get_term (গুলি) না এবং এটি বিদ্যমান কিনা তা দেখুন) না থাকলে sertোকান)।
t31os

4

ডিফল্ট বিভাগটি wp_insert_post()কার্যকরী ক্ষেত্রে হার্ডকোডযুক্ত কেস ।

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


পোস্টের স্ট্যাটাস হুকের সাথে লিঙ্ক করার জন্য +1, আমি ঠিক এটিই খুঁজছিলাম।
ম্যাট

0

ডিফল্ট টার্ম প্লাগইন ব্যবহার করে আপনি এটি করতে পারেন

register_taxonomy( 'custom-tax', array('post'), array(
    'label'              => 'Custom Tag',
    'public'             => true,
    'show_ui'            => true,
    'default_term'       => 'Some Default Term', // Add this line to your code 
// then activate and deactivate the default term plugin to save the terms you set.
));

ডিফল্টরূপে পোস্ট জমা দেওয়ার পরে কোনও পদ পরীক্ষিত না থাকলে পোস্টটিতে এটি ডিফল্ট শব্দটি সংরক্ষণ করবে। এটি শ্রেণিবদ্ধ এবং অ -ক্রমিক উভয় শ্রেণিবিন্যাসের জন্য কাজ করে।


পোস্ট তৈরির দৃশ্যে যদি এটি স্বয়ংক্রিয়ভাবে নির্দিষ্ট শব্দটি নির্বাচন করে তবে খুব ভাল হবে, তাই ব্যবহারকারী কী হবে তা সচেতন।
গারকনিস

0

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

 /*************************************** ...Create a Custom Taxonomy for days ******************************/
add_action( 'init', 'build_taxonomies', 0 );  
function build_taxonomies() {  
    register_taxonomy( 
    'days', 
    'schedule',
   array( 'hierarchical' => true, 
    'label' => 'Days',
    'query_var' => true, 
    'show_ui' => false, //removes the menus from admin menu and edit panel  
    'rewrite' => true ) );  

/*---------------------------------------Check to see if the days are created..if not, create them----*/
$parent_term = term_exists( 'days', 'days' ); // array is returned if taxonomy is given
$parent_term_id = $parent_term['term_id']; // get numeric term id

wp_insert_term(//this should probably be an array, but I kept getting errors..
        'Monday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'monday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Tuesday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'tuesday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Wednesday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'wednesday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Thursday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'thursday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Friday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'friday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Saturday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'saturday',
        'parent'=> $parent_term_id ));

wp_insert_term(
        'Sunday', // the term 
        'days', // the taxonomy
        array(
        'slug' => 'sunday',
        'parent'=> $parent_term_id ));
}
/************ now I add my own meta box for days to get rid of extra controls *************/

add_action('admin_menu', 'add_custom_categories_box');
function add_custom_categories_box() {
 add_meta_box('myrelateddiv', 'Days*', 'ilc_post_related_meta_box', 'schedule', 'normal', 'low', array( 'taxonomy' => 'days' ));
}

function ilc_post_related_meta_box( $post, $box ) {
  $defaults = array('taxonomy' => 'related');
  if ( !isset($box['args']) || !is_array($box['args']) )
  $args = array();
  else
  $args = $box['args'];
  extract( wp_parse_args($args, $defaults), EXTR_SKIP );
  $tax = get_taxonomy($taxonomy);
?>

  <ul id="<?php echo $taxonomy; ?>checklist" class="list:<?php echo $taxonomy?> categorychecklist form-no-clear">
<?php
  wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy, 'popular_cats' => $popular_ids, 'checked_ontop' => FALSE ) )
?>
</ul>   
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.