আমি দুটি কাস্টম পোস্ট ধরণের মধ্যে কীভাবে সম্পর্ক তৈরি করব?


16

আমি ওয়ার্ডপ্রেস ব্যবহার করে একটি টিভি সিরিজ ডাটাবেস তৈরি করতে চাই। আমি কয়েকটি টিউটোরিয়াল অনুসরণ করেছি এবং আমার দুটি কাস্টম পোস্ট প্রকার রয়েছে: একটির জন্য movies, একটি এর জন্য এবং seriesকাঠামোর জন্য আমি এই পোস্টটি অনুসরণ করেছি ।

আমার প্রশ্ন: আমি সিনেমা এবং সিরিজের পোস্ট ধরণের মধ্যে সম্পর্ককে কীভাবে তৈরি করতে পারি?


প্রথমত, আপনি একটি সম্পূর্ণ ডাটাবেস তৈরি করছেন না , আপনি কেবল একটি ওয়ার্ডপ্রেস তৈরি করছেন কাস্টম পোস্ট প্রকার Type এবং ওয়ার্ডপ্রেস স্কোপের মধ্যে আপনার অনেকগুলি সুযোগ রয়েছে সেগুলি শ্রেণিবদ্ধকরণ, সেগুলি বাছাই করা ইত্যাদি of সেগুলি একটি ভাল অভ্যন্তরীণ সম্পর্ক দিয়েই সম্পন্ন হয়। সুতরাং, আপনি যে সম্পর্কের কথা বলছেন সেটি ইতিমধ্যে রয়েছে, আপনার প্রয়োজন অনুযায়ী এটি কেবল প্রয়োগ করতে হবে। সুতরাং, আমি আপনাকে নির্দেশিত পোস্ট পোস্টটি কার্যকর করার জন্য পরামর্শ দেব এবং তারপরে আপনার আসল ক্যোয়ারী দিয়ে প্রশ্নটি সম্পাদনা করুন।
মায়নুল ইসলাম

@ মায়নুল ইসলাম, "implement the post_type as directed"আপনার অর্থ কি?
কোয়ালআর্মি

আপনার প্রদত্ত লিঙ্ক-থ্রেডে নির্দেশিত হিসাবে বা কোনও সাধারণ জেনারেটর ব্যবহার করে: এই পোস্টের প্রকারের জেনারেটর হিসাবে
মায়নুল ইসলাম

@ মায়িনুল ইসলাম: আমি নিশ্চিত নই যে "আপনি যে সম্পর্কের কথা বলছেন সেটি ইতিমধ্যে রয়েছে"। ডিফল্টরূপে, বিভিন্ন পোস্ট ধরণের মধ্যে সরাসরি সম্পর্ক নেই।
s_ha_dum

@ s_ha_dum দুঃখিত, আমি তার প্রশ্নের কিছু অংশ মিস করেছি যেখানে তিনি ইতিমধ্যে বলেছেন যে তার দুটি পোস্ট_প্রকার রয়েছে। এটা আমার ভুল. আমি তাঁর বিস্তারিত দিয়ে তাকে পরিষ্কার করার চেষ্টা করছি। আমি মিস করেছি যে বিশদটি ইতিমধ্যে রয়েছে। :( আমি সংজ্ঞায়িত হলে
ট্যাক্সনমি

উত্তর:


22

একটি প্লাগিন ব্যবহার করা

সম্পর্কের জন্য কিছু খুব ভাল প্লাগইন:

একটি মেটাবক্স ব্যবহার করা

আপনি মেটাবক্সগুলি ব্যবহার করে একটি সহজ সম্পর্ক তৈরি করতে পারেন:

add_action( 'admin_init', 'add_meta_boxes' );
function add_meta_boxes() {
    add_meta_box( 'some_metabox', 'Movies Relationship', 'movies_field', 'series' );
}

function movies_field() {
    global $post;
    $selected_movies = get_post_meta( $post->ID, '_movies', true );
    $all_movies = get_posts( array(
        'post_type' => 'movies',
        'numberposts' => -1,
        'orderby' => 'post_title',
        'order' => 'ASC'
    ) );
    ?>
    <input type="hidden" name="movies_nonce" value="<?php echo wp_create_nonce( basename( __FILE__ ) ); ?>" />
    <table class="form-table">
    <tr valign="top"><th scope="row">
    <label for="movies">Movies</label></th>
    <td><select multiple name="movies">
    <?php foreach ( $all_movies as $movie ) : ?>
        <option value="<?php echo $movie->ID; ?>"<?php echo (in_array( $movie->ID, $selected_movies )) ? ' selected="selected"' : ''; ?>><?php echo $movie->post_title; ?></option>
    <?php endforeach; ?>
    </select></td></tr>
    </table>
}

add_action( 'save_post', 'save_movie_field' );
function save_movie_field( $post_id ) {

    // only run this for series
    if ( 'series' != get_post_type( $post_id ) )
        return $post_id;        

    // verify nonce
    if ( empty( $_POST['movies_nonce'] ) || !wp_verify_nonce( $_POST['movies_nonce'], basename( __FILE__ ) ) )
        return $post_id;

    // check autosave
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
        return $post_id;

    // check permissions
    if ( !current_user_can( 'edit_post', $post_id ) )
        return $post_id;

    // save
    update_post_meta( $post_id, '_movies', array_map( 'intval', $_POST['movies'] ) );

}

এবং তারপরে সিরিজের পোস্টগুলির তালিকা হিসাবে চলচ্চিত্রের সম্পর্ক পেতে:

$series = new WP_Query( array(
    'post_type' => 'movies',
    'post__in' => get_post_meta( $series_id, '_movies', true ),
    'nopaging' => true
) );

if ( $series-> have_posts() ) { while ( $series->have_posts() ) {
    $series->the_post();
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ></a></li>
    <?php
} }

3
আমি বিপাক (প্লাগইনগুলি এড়াতে চেষ্টা করে) এর সাথে ধারণাটি পছন্দ করি!
কোয়ালআর্মি

অন্য কোনও পোস্ট তৈরি না করে আমরা কী কীভাবে এই পিতামাতার / সন্তানের সম্পর্ক থেকে পারমিলিংক তৈরি করতে পারি? উদাহরণস্বরূপ: http://domain.com/series-name/movie-name?
এক্সট্রেমফাইথ

@ এক্সট্রিমফ্যাথ সহ এটি অন্যান্য কোড দিয়েও করা যেতে পারে। বিভাগগুলির জন্য আমি একটি প্লাগইন তৈরি করেছি। আপনি রেফারেন্স হিসাবে ব্যবহার করতে পারেন। wordpress.org/plugins/hierarchical-urls
vmassuchetto

5

আমি পোস্ট 2 পোস্ট প্লাগইনটি সুপারিশ করি যা আমি সবেমাত্র ব্যবহার শুরু করেছি।

এটা আপনি পোস্ট ও পৃষ্ঠা ধরনের মধ্যে অনেক সাথে অধিকের সম্পর্ক তৈরি করতে, যার অর্থ আপনি লিঙ্ক করতে পারেন moviesকরতে seriesএবং অন্য কোন CPTs আপনি তৈরি করতে পারেন।

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


আমি এটি একবার দেখুন।
কোয়ালআর্মি

ইওয়াস স্ট্যাচ খুঁজছেন। অনুরূপ এবং বিভিন্ন সমাধান চেষ্টা। আমার বলতে হবে যে এটির (পোস্ট 2 পোস্ট) নিখুঁত ছিল, এটি কোনও 'নন-প্রোগ্রামার' খুঁজছিল তা নাও হতে পারে, তবে আপনি যদি আরও অনুসন্ধান করছেন। আপনার টেম্পলেটটিতে ব্যবহার করার মতো লাইব্রেরির মতো এটি কেবল নিখুঁত, ভাল ডকুমেন্টেড, ভাল সংহত, এটি পান! ;)
লার্জান

পোস্ট সম্পর্কের জন্য আমি একটি ছোট প্লাগইন করেছি তবে ওয়ার্ডপ্রেস.আর.
প্লাগইনস

2

দুর্ভাগ্যক্রমে, পোস্ট 2 পোস্ট প্লাগইন হ্রাস করা হয় এবং আর রক্ষণাবেক্ষণ করা হয় না। এমবি সম্পর্কের জন্য একটি নতুন বিকল্প প্লাগইন রয়েছে । এটি পি 2 পি দ্বারা অনুপ্রাণিত এবং পোস্ট, পদ এবং ব্যবহারকারীর মধ্যে সম্পর্ক তৈরি করতে অনুরূপ এপিআই সরবরাহ করে।

এমবি সম্পর্কগুলি দ্বি-দিকনির্দেশক সম্পর্কে ডিফল্টরূপে সমর্থন করে এবং উন্নত পারফরম্যান্সের (পোস্ট মেটারের তুলনায়) সম্পর্কের (পি 2 পি এর মতো) সঞ্চয় করার জন্য একটি কাস্টম টেবিল ব্যবহার করে।

প্লাগইনটি একবার দেখে নেওয়া মূল্যবান।

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