मीडिया को पोस्ट में सम्मिलित करते समय, क्या "ऑल मीडिया आइटम" से "इस पोस्ट पर अपलोड" में मीडिया-लाइब्रेरी के डिफ़ॉल्ट-दृश्य को बदलने का कोई तरीका है?
एक और सूत्र है जहां से यह प्रश्न निकाला गया था: अनुलग्नक रिश्तों को कैसे प्रबंधित करें
मीडिया को पोस्ट में सम्मिलित करते समय, क्या "ऑल मीडिया आइटम" से "इस पोस्ट पर अपलोड" में मीडिया-लाइब्रेरी के डिफ़ॉल्ट-दृश्य को बदलने का कोई तरीका है?
एक और सूत्र है जहां से यह प्रश्न निकाला गया था: अनुलग्नक रिश्तों को कैसे प्रबंधित करें
जवाबों:
मेरे पिछले उत्तर में दो छोटी गलतियाँ थीं:
change
माता-पिता के लिए घटना को ट्रिगर करना भूल गया ।यहाँ निश्चित कोड है:
<?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
}
Add Media
बटन पर क्लिक करते हैं लेकिन जब आप क्लिक करते हैं तो नहीं Set featured image
। वहाँ के रूप में अच्छी तरह से यह काम करने के लिए एक रास्ता है?
wp.media.view.UploaderWindow.prototype.on('ready',function() {console.log(jQuery('.media-modal-content'))...your code here...});
तो यह अधिक उचित होगा।
जेएस के ऊपर एकमात्र समस्या यह है कि यह पेज लोड होने के बाद और इसके बाद पहले से ही सभी मीडिया आइटम्स डाउनलोड करने के लिए परिवर्तन को ट्रिगर करने के लिए चुनिंदा बॉक्स को टॉगल करता है। धीमी T1 पर मेरे ग्राहक के लिए यह सभी लॉक किए गए चीजों को डाउनलोड करता है क्योंकि यह सभी मीडिया टाइम और UPLOADED TO THIS POST आइटम को एक साथ डाउनलोड करता है।
मुझे महान सीपफली से कुछ मदद मिली जो पोस्ट थंबनेल संपादक प्लगिन विकसित करता है । उन्होंने जेएस का एक बड़ा हिस्सा साझा किया जो सभी मीडिया आइटम्स के भार को रोकता है और इसे केवल डिफ़ॉल्ट रूप से "UPLOADED TO THIS POST" छवियों को लोड करने के लिए मजबूर करता है।
फाइल: 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);
}
});
});
फ़ाइल: functions.php
add_action('admin_enqueue_scripts', 'add_admin_js');
function add_admin_js() {
wp_enqueue_script('admin_js', get_bloginfo( 'template_directory' ) . '/js/admin.js');
}
GitHub पर समान कोड: https://gist.github.com/fishnyc22/5593693
मैंने उस जेएस फ़ाइल को गिरा दिया और उसे functions.php में admin_enqueue_scripts के साथ कॉल किया। PHP और JS दोनों के लिए ऊपर GIST देखें।
शानदार ढंग से काम करता है। उम्मीद है कि ठीक वर्डप्रेस लोग इसे आगामी अपडेट में ठीक कर देंगे , लेकिन अब सीपफली के पास मेरे पास सबसे अच्छा समाधान है। धन्यवाद फिर से दोस्त
मुझे ध्यान देना चाहिए कि मुझे अभी पता चला है कि दर्शक मेडम के आकार की छवियों को डिफॉल्ट करता है जिन्हें मैंने अक्षम किया था (0,0 पर सेट) क्योंकि मैं ब्लोट का उपयोग और रोकथाम नहीं कर रहा था। जब मध्यम आकार में उपलब्ध वर्डप्रेस फुल साइज इमेज को लोड नहीं करता है। मैंने तब से मध्यम आकार को सक्षम किया है।
@toscho आह, मुझे आपके कोड में एक बग मिला। कृपया मेरे साथ नंगे हो। समस्या को दोहराने के लिए निम्नलिखित कार्य करें:
1) एक मसौदा पोस्ट खोलें।
2) Add Media
बटन पर क्लिक करें। लोड करने के लिए jQuery फ़ंक्शन की प्रतीक्षा करें।
3) अपने बाईं ओर, Set Featured Image
लिंक पर क्लिक करें ।
4) अब मीडिया पॉपअप विंडो को बंद करें और पोस्ट एडिट पेज Set featured image
पर राइट साइड बार पर दिए गए लिंक पर क्लिक करें ।
5) आप देखेंगे कि jQuery फ़ंक्शन काम नहीं करेगा।
हालाँकि, यदि आपने Set featured image
पोस्ट एडिट लोड पर पहले लिंक पर क्लिक किया होगा , तो फ़ंक्शन काम करेगा। क्या आप इस मुद्दे को दोहरा सकते हैं और संभवतः इसका हल ढूंढ सकते हैं? उत्तर के रूप में पोस्ट करने के लिए फिर से क्षमा करें, लेकिन यह प्लेटफ़ॉर्म मुझे वर्तमान में एक बेहतर विकल्प प्रदान नहीं करता है।
संपादित करें: Can कोई तो कृपया toscho इस बारे में पता। आप उसके जवाब में एक टिप्पणी जोड़कर ऐसा कर सकते हैं, जो मुझे लगता है कि उसे एक अधिसूचना देनी चाहिए। मैं टिप्पणी नहीं लिख सकता क्योंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है ...
EDIT 2 : यदि आप इस समस्या से पूरी तरह से बचना चाहते हैं, तो आप पॉपअप में "सेट फीचर्ड इमेज" लिंक को हटा सकते हैं और उपयोगकर्ता को साइडबार लिंक (जैसे WP संस्करण 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;
}
जैसा कि मैंने कहा, यह एक हताश फिक्स है जब तक कि मुख्य कोड के लिए कोई समाधान पोस्ट नहीं किया गया है।
इन समाधानों में से अधिकांश के बारे में मुझे जो पसंद नहीं आया, वह यह है कि यह स्क्रीन के बहुत सारे पलकें झपका रहा था, और यदि आपने फीचर्ड इमेज पर क्लिक किया, तो यह सभी छवियों को वापस दिखाएगा। कुछ खोज के बाद मुझे लगता है कि एक स्थायी समाधान मिला ( थैंक्स टू अर्नाल कोरकमाज़ ) जो दिखता है कि यह इन समस्याओं को हल करता है। कोड:
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
}
जो स्थायी रूप से मीडिया लाइब्रेरी को केवल "अपलोडेड टू दिस पोस्ट" दिखाने के लिए सेट करता है, भले ही आप कोशिश करें और उस दृश्य को बदल दें जिसका कोई मतलब नहीं है।
मैंने इस कोड को पूरी तरह से चयन बॉक्स को हटाने के लिए इसके साथ जोड़ा है:
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
}