কাস্টম পোস্টের প্রকার একক- {কাস্টম}। Php কাজ করছে না


19

আমি মেশিনের নাম স্পেশাল_মিডিয়া_পোস্ট দিয়ে একটি কাস্টম পোস্ট টাইপ করেছি এবং ওয়ার্ডপ্রেসটি কেবল একক-বিশেষ_মিডিয়া_পোস্ট.এফপি দেখতে পাচ্ছে না। আমি সম্পূর্ণ হারে আছি এটি সূচী.পিএফ-তে ডিফল্ট রাখে

আমার কাস্টম পোস্টের ধরণের এবং এর বিভাগের জন্য আমার কোড এখানে রয়েছে:

//Post and Taxonomy stuff
//Register Custom Post Type
function special_media_post() {
$labels = array(
    'name'                => _x( 'Media Posts', 'Post Type General Name', 'text_domain' ),
    'singular_name'       => _x( 'Media Post', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'           => __( 'Media Post', 'text_domain' ),
    'parent_item_colon'   => __( 'Media Post:', 'text_domain' ),
    'all_items'           => __( 'All Media Posts', 'text_domain' ),
    'view_item'           => __( 'View Media Post', 'text_domain' ),
    'add_new_item'        => __( 'Add New Media Post', 'text_domain' ),
    'add_new'             => __( 'New Media Post', 'text_domain' ),
    'edit_item'           => __( 'Edit Media Post', 'text_domain' ),
    'update_item'         => __( 'Update Media Post', 'text_domain' ),
    'search_items'        => __( 'Search Media Posts', 'text_domain' ),
    'not_found'           => __( 'No media posts found', 'text_domain' ),
    'not_found_in_trash'  => __( 'No media posts found in Trash', 'text_domain' ),
);

$rewrite = array(
    'slug'                => 'mediapost',
    'with_front'          => true,
    'pages'               => true,
    'feeds'               => true,
);

$args = array(
    'label'               => __( 'mediapost', 'text_domain' ),
    'description'         => __( 'Post Type for Media', 'text_domain' ),
    'labels'              => $labels,
    'supports'            => array( 'title', 'editor', 'custom-fields', ),
    'taxonomies'          => array( 'year', 'type' ),
    'hierarchical'        => false,
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 5,
    'can_export'          => true,
    'has_archive'         => true,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'query_var'           => 'mediapost',
    'rewrite'             => $rewrite,
    'capability_type'     => 'page',
);

register_post_type( 'special_media_post', $args );
}

// Register Custom Taxonomy
function media_year()  {
$labels = array(
    'name'                       => _x( 'Years', 'Taxonomy General Name', 'text_domain' ),
    'singular_name'              => _x( 'Year', 'Taxonomy Singular Name', 'text_domain' ),
    'menu_name'                  => __( 'Year', 'text_domain' ),
    'all_items'                  => __( 'All Years', 'text_domain' ),
    'parent_item'                => __( 'Parent Year', 'text_domain' ),
    'parent_item_colon'          => __( 'Parent Year:', 'text_domain' ),
    'new_item_name'              => __( 'New Year Name', 'text_domain' ),
    'add_new_item'               => __( 'Add New Year', 'text_domain' ),
    'edit_item'                  => __( 'Edit Year', 'text_domain' ),
    'update_item'                => __( 'Update Year', 'text_domain' ),
    'separate_items_with_commas' => __( 'Separate years with commas', 'text_domain' ),
    'search_items'               => __( 'Search years', 'text_domain' ),
    'add_or_remove_items'        => __( 'Add or remove years', 'text_domain' ),
    'choose_from_most_used'      => __( 'Choose from the most used yearss', 'text_domain' ),
);

$rewrite = array(
    'slug'                       => 'year',
    'with_front'                 => true,
    'hierarchical'               => true,
);

$capabilities = array(
    'manage_terms'               => 'manage_categories',
    'edit_terms'                 => 'manage_categories',
    'delete_terms'               => 'manage_categories',
    'assign_terms'               => 'edit_posts',
);

$args = array(
    'labels'                     => $labels,
    'hierarchical'               => true,
    'public'                     => true,
    'show_ui'                    => true,
    'show_admin_column'          => true,
    'show_in_nav_menus'          => true,
    'show_tagcloud'              => true,
    'query_var'                  => 'year',
    'rewrite'                    => $rewrite,
    'capabilities'               => $capabilities,
);

register_taxonomy( 'year', 'special_media_post', $args );
}

// Register Custom Taxonomy
function media_type()  {
$labels = array(
    'name'                       => _x( 'Types', 'Taxonomy General Name', 'text_domain' ),
    'singular_name'              => _x( 'Type', 'Taxonomy Singular Name', 'text_domain' ),
    'menu_name'                  => __( 'Type', 'text_domain' ),
    'all_items'                  => __( 'All Types', 'text_domain' ),
    'parent_item'                => __( 'Parent Type', 'text_domain' ),
    'parent_item_colon'          => __( 'Parent Type:', 'text_domain' ),
    'new_item_name'              => __( 'New Type Name', 'text_domain' ),
    'add_new_item'               => __( 'Add New Type', 'text_domain' ),
    'edit_item'                  => __( 'Edit Type', 'text_domain' ),
    'update_item'                => __( 'Update Type', 'text_domain' ),
    'separate_items_with_commas' => __( 'Separate types with commas', 'text_domain' ),
    'search_items'               => __( 'Search types', 'text_domain' ),
    'add_or_remove_items'        => __( 'Add or remove types', 'text_domain' ),
    'choose_from_most_used'      => __( 'Choose from the most used types', 'text_domain' ),
);

$rewrite = array(
    'slug'                       => 'type',
    'with_front'                 => true,
    'hierarchical'               => true,
);

$capabilities = array(
    'manage_terms'               => 'manage_categories',
    'edit_terms'                 => 'manage_categories',
    'delete_terms'               => 'manage_categories',
    'assign_terms'               => 'edit_posts',
);

$args = array(
    'labels'                     => $labels,
    'hierarchical'               => true,
    'public'                     => true,
    'show_ui'                    => true,
    'show_admin_column'          => true,
    'show_in_nav_menus'          => true,
    'show_tagcloud'              => true,
    'query_var'                  => 'media_type',
    'rewrite'                    => $rewrite,
    'capabilities'               => $capabilities,
);

register_taxonomy( 'type', 'special_media_post', $args );
}

// Hook into the 'init' action
add_action( 'init', 'special_media_post', 0 );

// Hook into the 'init' action
add_action( 'init', 'media_year', 0 );

// Hook into the 'init' action
add_action( 'init', 'media_type', 0 );

আপনার যদি অন্য কিছু দেখার দরকার হয় তবে আমি তা রাখতে পারি তবে আমি সেখানে 'হ্যালো ওয়ার্ল্ড' প্রতিধ্বনি দিলেও এটি এটি দেখতে পাবে না। সুতরাং এটি কেবল একক-বিশেষ_ মিডিয়া_পোস্ট.এফপি বা সংরক্ষণাগার-বিশেষ_মেডিয়া_পোস্ট.এফপি দেখতে পাচ্ছে না

উত্তর:


57

পারমালিঙ্কস পৃষ্ঠাটি দেখুন (এটি এটি ফ্লাশ করবে) এবং আবার চেক করুন। শ্রেণিবিন্যাসে আপনার সংযোজনটি সনাক্ত করার জন্য সম্ভবত ওয়ার্ডপ্রেসকে কেবলমাত্র টান দেওয়া দরকার।


2
কি দারুন! মোহন মত কাজ করে, 1 ঘন্টা নষ্ট :(
মোহাম্মদ সুফিয়ান

5

কোড পরিবর্তন করুন

থেকে:

 'has_archive'         => true,

প্রতি :

 'has_archive'         => false,

এবং তারপরে পারমালিঙ্ক পৃষ্ঠায় যান, ডিফল্টে পরিবর্তন করুন এবং আপনার "সুন্দর পারমালিঙ্ক" এ ফিরে যান

% POSTNAME% /

এখন এটি কাজ করা উচিত।

এটি একক- {কাস্টম_পোস্ট_টাইপ}। পিএফপি পৃষ্ঠায় না যাওয়ার কারণ হ্যাশআর্কাইভ। যখন has_archive সত্যে সেট করা থাকে এটি একক পৃষ্ঠার পরিবর্তে সংরক্ষণাগার- {কাস্টম_পোস্ট_প্রধান pe। Php সন্ধান করবে।

আশা করি এটি কাজ করেছে।


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

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

3
এটি সম্ভব হয় যে পার্মালিংক কাঠামোটি পুনরায় সেট করে ফিক্স করা হয়েছে, যার ফলে পুনরায় লেখার নিয়মগুলি ফ্লাশ হয়েছে।
চিপ বেনেট

2
একচেটিয়া অনুরোধের জন্য 'has_archive' সেটিংয়ের কোনও প্রভাব নেই বা একক- {post_type}। php টেমপ্লেট ব্যবহার করা হবে না।
জুলাই

একটি যাদুমন্ত্র মত কাজ করে. ধন্যবাদ বন্ধু!
ব্যবহারকারী1202416

1

এটি একটি ভাল অনুশীলন নতুন সামগ্রী তৈরি করার সময় register_activation_hook()এবং ব্যবহার করে register_deactivation_hook()

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

register_activation_hook( __FILE__, 'your_active_hook' );

function your_active_hook() {
    special_media_post();
    flush_rewrite_rules();
}

0

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

আপনি লেখা নিয়ম ফ্লাশ প্রয়োজন একবার after_switch_theme হুক ব্যবহার করে। এটি নিশ্চিত করবে যে ব্যবহারকারী থিমটি সক্রিয় করার পরে পুনরায় লেখার নিয়মগুলি স্বয়ংক্রিয়ভাবে ফ্লাশ হবে।

আপনি এই কোডটি ব্যবহার করতে পারেন (সোজা কোডেক্স থেকে):

add_action( 'init', 'theme_prefix_cpt_init' );
function theme_prefix_cpt_init() {
    register_post_type( ... );
}

function theme_prefix_rewrite_flush() {
    flush_rewrite_rules();
}
add_action( 'after_switch_theme', 'theme_prefix_rewrite_flush' );

আরও তথ্যের জন্য দয়া করে ওয়ার্ডপ্রেস কোডেক্সের পরামর্শ নিন: http://codex.wordpress.org/Function_References/register_post_type

সম্পাদনা করুন: যেমন একটি ক্ষেত্রে, পরিদর্শন লেখা বিধি প্লাগইন, খুব উপকারে আসে কারণ এটি আপনার কাস্টম পোস্ট টাইপ সংযুক্ত বিধি দেখার জন্য অনুমতি দেয়: http://wordpress.org/extend/plugins/rewrite-rules-inspector/

অন্যদিকে, দয়া করে নোট করুন যে কাস্টম পোস্ট প্রকারের জন্য প্রস্তাবিত স্থানটি একটি থিম নয়, একটি প্লাগইন।

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