কাস্টম পোস্ট ধরণের জন্য নতুন পোস্টের স্থিতি


13

আমার একটি কাস্টম পোস্ট টাইপ আছে recipes। আমি স্বয়ংক্রিয়ভাবে ডেটাবেসে একত্রিত খবরের জন্য ক্রোন স্ক্রিপ্ট ব্যবহার করছি।

এটি বর্তমানে আমদানি করা হচ্ছে এবং 'মুলতুবি পর্যালোচনা' হিসাবে সংরক্ষণ করা হচ্ছে। এমন কি আরও একটি পোস্ট স্ট্যাটাস তৈরি করা সম্ভব Aggregatedযা একত্রিত সমস্ত সংবাদ প্রকাশের তালিকাবদ্ধ করবে?

আমি register_post_statusফাংশনটি ব্যবহার করার চেষ্টা করেছি , তবে এটি কাজ করবে বলে মনে হচ্ছে না:

function custom_post_status(){
    register_post_status( 'aggregated', array(
        'label'                     => _x( 'Aggregated', 'recipes' ),
        'public'                    => false,
        'exclude_from_search'       => true,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop( 'Aggregated <span class="count">(%s)</span>', 'Aggregated <span class="count">(%s)</span>' ),
    ) );
}
add_action( 'init', 'custom_post_status' );

এই সাহায্য করার জন্য ধন্যবাদ।


আমি মনে করি কোডটি সঠিক। এটিকে কল করার জন্য আপনার অন্য কোনও কার্যে এই উত্স রয়েছে। অ্যাড অ্যাকশন () চালাবেন কখন?
বোল্টেজ করুন

আপনি আরও বিস্তারিতভাবে আপনার উত্তর ব্যাখ্যা করতে পারেন? ধন্যবাদ!
dclawson

ADD_ACTION ( 'Init' একটি বর্গ বা ফাংশন, সেখানে আপনি একটি অন্য হুক সম্পর্কে কল ভিতরে এটা যে আপনার Lat এই শুরু করা এবং হুক Init না বহিস্কার করতে সম্ভব
bueltge

আপনি এই সমস্যাটি কীভাবে সমাধান করেছেন? আমার এখন ঠিক একই সমস্যা আছে। আমি কাস্টম-পোস্ট অ্যাডমিন অঞ্চলের ড্রপ ডাউন তালিকায় নতুন কাস্টম স্থিতি যুক্ত করতে চাই, যা ব্যবহারকারীকে স্টাটি তালিকা থেকে (পেনডিগ রিভিউ, খসড়া, NEW_CUSTOM_STATUS) নির্বাচন করতে দেয় ...
গ্রিসো

উত্তর:


9

সেখানে যে কাজ করতে কিভাবে এখানে ধাপ বর্ণনা দ্বারা একটি দুর্দান্ত পদক্ষেপ http://jamescollings.co.uk/blog/wordpress-create-custom-post-status/

ড্রপ-ডাউন মেনুতে আপনার কাস্টম পোস্টের স্থিতি যুক্ত করতে কেবল আপনার থিম ফাংশন স্ক্রিপ্টে নিম্নলিখিতটি যুক্ত করুন:

add_action('admin_footer-post.php', 'jc_append_post_status_list');
function jc_append_post_status_list(){
 global $post;
 $complete = '';
 $label = '';
 if($post->post_type == 'recipes'){
      if($post->post_status == 'aggregated'){
           $complete = ' selected=\"selected\"';
           $label = '<span id=\"post-status-display\"> Aggregated</span>';
      }
      echo '
      <script>
      jQuery(document).ready(function($){
           $("select#post_status").append("<option value=\"aggregated\" '.$complete.'>Aggregated</option>");
           $(".misc-pub-section label").append("'.$label.'");
      });
      </script>
      ';
  }
}

এটির সাহায্যে আপনার কাস্টম পোস্টের স্থিতি রয়েছে এবং 5 মিনিটে চলছে, আমাকে অনেক সময় বাঁচিয়েছে!



@ রিনোগো ধন্যবাদ ম্যান, আপনার সরবরাহ করা আর্কাইভ.আর লিঙ্কটিতে স্যুইচ করেছেন
লার্জান ২১ শে

7

আপনার কোডটি সাউন্ড হওয়া উচিত এবং global wp_post_statuses গ্লোবাল অ্যারেতে পছন্দসই স্থিতি যুক্ত করা উচিত।

আপনি যদি এটি অ্যাডমিনের ড্রপ-ডাউন-এ প্রদর্শিত হবে বলে আশা করছেন তবে এটি একটি চলমান সমস্যা: https://core.trac.wordpress.org/ticket/12706


1

কাস্টম পোস্ট ধরণের "রেসিপি" এর জন্য একটি পোস্ট স্থিতি "একত্রিত" নিবন্ধন করুন:

register_post_status( 'aggregated', array(
                    'label'                     => _x( 'Aggregated ', 'post status label', 'bznrd' ),
                    'public'                    => true,
                    'label_count'               => _n_noop( 'Aggregated s <span class="count">(%s)</span>', 'Aggregated s <span class="count">(%s)</span>', 'plugin-domain' ),
                    'post_type'                 => array( 'recipes' ), // Define one or more post types the status can be applied to.
                    'show_in_admin_all_list'    => true,
                    'show_in_admin_status_list' => true,
                    'show_in_metabox_dropdown'  => true,
                    'show_in_inline_dropdown'   => true,
                    'dashicon'                  => 'dashicons-businessman',
                ) );

"রেসিপি" কাস্টম পোস্ট সম্পাদনা স্ক্রিনের প্রকাশিত মেটাবক্সে, ড্রপডাউনে কাস্টম পোস্টের স্থিতি যুক্ত করে এবং নির্বাচিত পোস্টের স্থিতিটি "একত্রিত" করা হয় "সংরক্ষণ ড্রাফ্ট" বোতামের লেবেল পরিবর্তন করুন:

add_action('admin_footer-post.php',function(){

    global $post;
    $complete = '';
    $label = '';

    if($post->post_type == 'recipes') {

        if ( $post->post_status == 'aggregated' ) {
            $complete = ' selected=\"selected\"';
            $label    = 'Aggregated';
        }

        $script = <<<SD


       jQuery(document).ready(function($){
           $("select#post_status").append("<option value=\"aggregated\" '.$complete.'>Aggregated</option>");

           if( "{$post->post_status}" == "aggregated" ){
                $("span#post-status-display").html("$label");
                $("input#save-post").val("Save Aggregated");
           }
           var jSelect = $("select#post_status");

           $("a.save-post-status").on("click", function(){

                if( jSelect.val() == "aggregated" ){

                    $("input#save-post").val("Save Aggregated");
                }
           });
      });


SD;

        echo '<script type="text/javascript">' . $script . '</script>';
    }

});

কাস্টম পোস্ট প্রশাসক গ্রিডের দ্রুত সম্পাদনা স্ক্রিনে কাস্টম পোস্টের স্থিতি যুক্ত করুন:

add_action('admin_footer-edit.php',function() {
    global $post;
    if( $post->post_status == 'recipes' ) {
        echo "<script>
    jQuery(document).ready( function() {
        jQuery( 'select[name=\"_status\"]' ).append( '<option value=\"aggregated\">Aggregated</option>' );
    });
    </script>";
    }
});

কাস্টম পোস্ট প্রশাসক গ্রিডে কাস্টম পোস্টের স্থিতি প্রদর্শন করুন:

add_filter( 'display_post_states', function( $statuses ) {
    global $post;

    if( $post->post_type == 'recipes') {
        if ( get_query_var( 'post_status' ) != 'aggregated' ) { // not for pages with all posts of this status
            if ( $post->post_status == 'aggregated' ) {
                return array( 'Aggregated' );
            }
        }
    }
    return $statuses;
});

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