3.5 তে মিডিয়া লাইব্রেরির ডিফল্ট-ভিউ পরিবর্তন করবেন?


33

কোনও পোস্টে মিডিয়া tingোকানোর সময়, "সমস্ত মিডিয়া আইটেম" থেকে "এই পোস্টে আপলোড করা" থেকে মিডিয়া-লাইব্রেরির ডিফল্ট দৃষ্টিভঙ্গি পরিবর্তন করার কোনও উপায় আছে কি?

ধার করা স্ক্রিনশট

এই প্রশ্নটি থেকে আরও একটি থ্রেড বের করা হয়েছিল: সংযুক্তি সম্পর্কিত সম্পর্কগুলি কীভাবে পরিচালনা করবেন


আপনি কি অন্য সমস্ত প্লাগইন বন্ধ করার চেষ্টা করেছেন, ডিফল্ট থিমটিতে ফিরে যেতে এবং তারপরে টাস্কো থেকে কেবল একটিটিকে সক্রিয় করার চেষ্টা করেছেন? জেএসের সংঘাত হতে পারে।
কায়সার

উত্তর:


22

আমার আগের উত্তরে দুটি ছোট ছোট ভুল ছিল:

  1. আমি changeপিতামাতার জন্য ইভেন্টটি ট্রিগার করতে ভুলে গেছি ।
  2. আমি অন্যান্য নির্বাচনগুলি অসম্ভব করে প্রতিটি এজেএক্স কলটিতে ফাংশনটি কল করেছি।

এখানে স্থির কোডটি রয়েছে:

<?php
/**
 * Plugin Name: Pre-select post specific attachments
 */

add_action( 'admin_footer-post-new.php', 'wpse_76048_script' );
add_action( 'admin_footer-post.php', 'wpse_76048_script' );

function wpse_76048_script()
{
    ?>
<script>
jQuery(function($) {
    var called = 0;
    $('#wpcontent').ajaxStop(function() {
        if ( 0 == called ) {
            $('[value="uploaded"]').attr( 'selected', true ).parent().trigger('change');
            called = 1;
        }
    });
});
</script>
    <?php
}

অনেক ধন্যবাদ, টসচো! <br> আপনি যে প্লাগইন কোডটি এখানে ফেলেছেন তা এখন আমার জন্য কবজির মতো কাজ করে! (ভাল লাগবে যদি কেউ এই "উত্তর" কে একটি মন্তব্যে রূপান্তর করতে এবং স্ট্যাটাসটি উত্তরে সেট করতে পারেন)
Div

আপনিই একমাত্র উত্তর চেক চিহ্নটি টিক দিতে পারেন । আপনি যে অ্যাকাউন্টটি জিজ্ঞাসার জন্য ব্যবহার করেছিলেন তা আপনাকে ব্যবহার করতে হবে। আমি উভয় অ্যাকাউন্ট একীভূত করেছি, আপনার এখন চেক চিহ্নটি টিক করা উচিত। :)
ফুক্সিয়া

3
এই খুব মার্জিত কোডটি যখন আপনি Add Mediaবোতামটি ক্লিক করেন কিন্তু যখন আপনি ক্লিক করেন না তখন কাজ করে Set featured image। এটির পাশাপাশি কাজ করার কোনও উপায় আছে কি?
ক্রিস্টিন কুপার

এটি বৈশিষ্ট্যযুক্ত চিত্রগুলির জন্যও আমার সিস্টেমে কাজ করে।
ফুসিয়া

1
এটির একটি সম্ভাব্য সমস্যা রয়েছে, দেখে মনে হচ্ছে আপনি মান = আপলোড করা সমস্ত কিছু নির্বাচন করছেন । এছাড়াও, আপনি যদি প্রতিটি আপলোডারের প্রারম্ভিককরণে জাভাস্ক্রিপ্ট যুক্ত করতে চান তবে wp.media.view.UploaderWindow.prototype.on('ready',function() {console.log(jQuery('.media-modal-content'))...your code here...});আরও উপযুক্ত হবে।
NoBugs

13

উপরের জেএসের সাথে একমাত্র সমস্যাটি যে পৃষ্ঠাটি লোড হওয়ার পরে এবং এরই মধ্যে সমস্ত মিডিয়া আইটিএমএস ডাউনলোড শুরু করার পরে পরিবর্তনটি ট্রিগার করতে নির্বাচিত বাক্সটি টগল করে। ধীরে ধীরে টি 1 এ আমার ক্লায়েন্টের জন্য এটি লক করা জিনিসগুলি হ'ল এটি সমস্ত মিডিয়া টাইমস এবং এই পোস্টের আইটেমগুলি একত্রে ডাউনলোড করে।

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

কোড

ফাইল: myadmin.js

jQuery(function($) {
    var called = 0;
    $('#wpcontent').ajaxStop(function() {
        if ( 0 == called ) {
            $('[value="uploaded"]').attr( 'selected', true ).parent().trigger('change');
            called = 1;
        }
    });
  var oldPost = wp.media.view.MediaFrame.Post;
    wp.media.view.MediaFrame.Post = oldPost.extend({
        initialize: function() {
            oldPost.prototype.initialize.apply( this, arguments );
            this.states.get('insert').get('library').props.set('uploadedTo', wp.media.view.settings.post.id);
        }
    });
});

ফাইল: ফাংশন.এফপি

add_action('admin_enqueue_scripts', 'add_admin_js');
function add_admin_js() {
    wp_enqueue_script('admin_js', get_bloginfo( 'template_directory' ) . '/js/admin.js');
}

গিটহাবে একই কোড: https://gist.github.com/fishnyc22/5593693

আমি এটিকে একটি জেএস ফাইলে ফেলে দিয়ে এডমিন_ইনকিউ_স্ক্রিপ্টস দিয়ে এটি ফাংশন.ফেপ বলেছি। পিএইচপি এবং জেএস উভয়ের জন্য উপরের জিআইএসটি দেখুন।

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

আমার মনে রাখা উচিত যে আমি সবেমাত্র আবিষ্কার করেছি যে আমি মিডিয়াম আকারের চিত্রগুলিতে ডিফল্ট হয়েছি যা আমি অক্ষম করেছি (0,0 তে সেট করেছি) যেহেতু আমি ব্লাট ব্যবহার এবং প্রতিরোধ করছি না। যখন মাঝারি আকারে উপলব্ধ ওয়ার্ডপ্রেস পূর্ণ আকারের চিত্রটি লোড করে না। আমি তখন থেকে মাঝারি আকারকে সক্ষম করে দিয়েছি।


অত্যন্ত সহায়ক - কেউ কি মিডিয়া লাইব্রেরিতে কিছু ধরণের হুক প্রদর্শন করে এমন চিত্রের সংখ্যা সীমাবদ্ধ করতে পারে না?
সহজাত

ব্যক্তিগতভাবে, আমি এই
সিএসএসটি

1
দুর্ভাগ্যক্রমে, এই সমাধানটি একটি বড় সমস্যা থেকে ভুগছে। নিম্নলিখিতগুলি করুন: 1. সম্পাদনা-পরবর্তী স্ক্রিনে একটি পোস্ট খুলুন। ২. "বৈশিষ্ট্যযুক্ত চিত্র সেট করুন" লিঙ্কটি ক্লিক করুন (মিডিয়া অ্যাড করুন বোতামে ক্লিক করার আগে)। ৩. কোডটি এখনও পর্যন্ত কাজ করে। এখন, উইন্ডোটি বন্ধ করুন এবং তারপরে অ্যাড মিডিয়া বোতামটি ক্লিক করুন। আপনি দেখতে পাবেন যে "সমস্ত মিডিয়া" বিকল্পটি নির্বাচিত হয়েছে তবে এটি আপলোড হওয়াগুলি প্রদর্শন করছে। সমস্ত চিত্রগুলিতে টগল করার জন্য আপনাকে আপলোড করতে টগল করতে হবে এবং তারপরে সমস্ত মিডিয়ায় ফিরে যেতে হবে। কারও কি এই সমস্যার সমাধান আছে? তবুও এই জন্য আপনাকে ধন্যবাদ।
ক্রিস্টিন কুপার

4

@ টসচো আহ, আমি আপনার কোডটিতে একটি বাগ পেয়েছি। দয়া করে আমার সাথে খালি সমস্যাটির প্রতিলিপি তৈরি করতে যথাযথ নিম্নলিখিতটি করুন:

1) একটি খসড়া পোস্ট খুলুন।

2) Add Mediaবোতামে ক্লিক করুন । JQuery ফাংশনটি লোড হওয়ার জন্য অপেক্ষা করুন।

3) আপনার বাম দিকে, Set Featured Imageলিঙ্কে ক্লিক করুন ।

৪) এখন মিডিয়া পপআপ উইন্ডোটি বন্ধ করুন এবং পোস্ট সম্পাদনা পৃষ্ঠায়, Set featured imageডান পাশের বারের লিঙ্কটিতে ক্লিক করুন ।

5) আপনি দেখতে পাবেন যে jQuery ফাংশনটি কাজ করবে না।

যাইহোক, আপনি Set featured imageপোস্ট সম্পাদনা লোড উপর লিঙ্কটি ক্লিক করা হবে যদি , ফাংশন কাজ করবে। আপনি কি এই সমস্যাটির প্রতিলিপি তৈরি করতে পারেন এবং সম্ভবত একটি সমাধান খুঁজে পেতে পারেন? এটিকে উত্তর হিসাবে পোস্ট করার জন্য আবার দুঃখিত তবে এই প্ল্যাটফর্মটি বর্তমানে আমার কাছে আরও ভাল বিকল্পের প্রস্তাব দেয় না।

সম্পাদনা: কেউ দয়া করে এই সম্পর্কে টসচো জানাতে পারেন? আপনি তার উত্তরে একটি মন্তব্য যুক্ত করে এটি করতে পারেন যা আমি বিশ্বাস করি যে তাকে একটি বিজ্ঞপ্তি দেওয়া উচিত। আমার যথেষ্ট খ্যাতি না থাকায় আমি মন্তব্য লিখতে পারি না ...

সম্পাদনা 2 : আপনি যদি এই সমস্যাটি মারাত্মকভাবে এড়াতে চান তবে আপনি পপআপের "ফিচারযুক্ত চিত্র সেট করুন" লিঙ্কটি সরিয়ে ব্যবহারকারীকে সাইডবার লিংকটি ব্যবহার করতে বাধ্য করতে পারেন (3.5 এর আগের ডাব্লুপি সংস্করণগুলির মতো)। WP 3.5 এ চালু হওয়া এই ফিল্টারটি ব্যবহার করুন:

add_filter( 'media_view_strings', 'cor_media_view_strings' );
/**
 * @see wp-includes|media.php
 */
function cor_media_view_strings( $strings ) {
    unset( $strings['setFeaturedImageTitle'] );
    return $strings;
}

আমি যেমন বলেছি, মূল কোডের জন্য কোনও সমাধান পোস্ট না করা পর্যন্ত এটি মরিয়া ফিক্স।


আমি এটি সম্পর্কে অবগত, আমার কাছে প্লাগইনটি বাড়ানোর কোনও সময় নেই।
ফুসিয়া

আমি বুঝতে পেরেছি, যদি আপনি অদূর ভবিষ্যতে এটি বাড়ানোর জন্য সময়টি খুঁজে পেতে চান তবে আমরা সকলেই কৃতজ্ঞ হব।
ক্রিস্টিন কুপার

আমি এই উত্তরটি হতাশদের জন্য "ওয়ার্ডআরআউন্ড" দিয়ে আপডেট করেছি । আপনি যদি চান তবে আপনার উত্তরটিতে এটি যুক্ত করতে পারেন ...
ক্রিস্টিন কুপার

2

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

add_action( 'admin_footer-post-new.php', 'media_library_filter' );
add_action( 'admin_footer-post.php', 'media_library_filter' );
function media_library_filter() { 
    ?>
    <script type="text/javascript">
        jQuery(document).on("DOMNodeInserted", function(){
            jQuery('select.attachment-filters [value="uploaded"]').attr( 'selected', true ).parent().trigger('change');
        });
    </script>
    <?php 
}

যা স্থায়ীভাবে মিডিয়া লাইব্রেরিটিকে কেবল "এই পোস্টে আপলোড করা" দেখানোর জন্য সেট করে, এমনকি আপনি চেষ্টা করে দেখুন এবং যার অর্থ কোনও ঝলক নেই change

পুরোপুরি সিলেক্টবক্সটি সরাতে আমি এই কোডটি সাথে যুক্ত করেছি:

add_action( 'admin_head', 'hide_select_ddl' );
function hide_select_ddl()
{
    ?>
<style type="text/css">
    div.media-menu a.media-menu-item:nth-child(3) {display:none!important;}
    .media-frame-content .attachment-filters:first-child {
        display:none;
    }
</style>
    <?php
}

2

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


2
আপনি যদি সত্যিই কোডটি ভাগ করে নিই তবে খুব ভাল হত - কেবল একটি লিঙ্ক নয়।
কায়সার

0

এটি আমার dateFilterচলমান মাসে সেট করার সমাধান , যদিও এটি দুবার অ্যাজেএক্স ট্রিগার করে।

.on('content:render:browse', function(a, b) {
  var filter = a.toolbar.secondary.get('dateFilter');           
  if (filter.model) {
    filter.model.set(filter.filters[1].props);
  }
})
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.