পোস্টগুলিতে অযাচিত মিডিয়া লাইব্রেরির URL?


14

গুগল যখন আমাদের ব্লগে কন্টেন্ট সন্ধান করছে তখন আমি আমার শোক এবং ভয়াবহতার বিষয়টি লক্ষ্য করেছিলাম যে মিডিয়া লাইব্রেরি থেকে পৃথক চিত্রগুলি কোনওভাবে তাদের নিজস্ব ইউআরএল তৈরি করছে যে গুগল কোনওভাবে অনুসন্ধান করছে এবং সূচী করছে!

উদাহরণস্বরূপ এই পৃষ্ঠা:
http://blog.stackoverflow.com/2008/08/spected-de વિકાસment-team-podcast/

এই চিত্রটি ধারণ করে:
http://blog.stackoverflow.com/wp-content/uploads/bio-jarrod-dixon.jpg

যা ঠিক আছে তবে কোনওভাবে এই চিত্রটি তার নিজস্ব ইউআরএল এবং "পোস্ট" হিসাবে প্রকাশিত হয়েছে: http://blog.stackoverflow.com/2008/08/spected-de વિકાસment-team-podcast /
bio-jarrod-dixon/

এটি অত্যন্ত অযাচিত!

আমি ওয়ার্ডপ্রেসে মিডিয়া সেটিংস পরীক্ষা করে দেখেছি এবং মিডিয়া লাইব্রেরির চারপাশে ব্রাউজ করেছি তবে আমি এই আচরণটি অক্ষম করার কোনও উপায় বের করতে পারি না। কোন ধারনা?

উত্তর:


7

আপনি যে জিনিসটি অযাচিত বলছেন সেটি ওয়ার্ডপ্রেসের অধীনে কেবল সাধারণ কার্যকারিতা এবং এটি সরানো যাবে না। তবে অযাচিত ইউআরএলকে আরও দরকারী কিছুতে নির্দেশ করার জন্য এমন কিছু জিনিস রয়েছে যা আপনি করতে পারেন।

এখানে কিছু আকর্ষণীয় সমাধান এবং কী ঘটছে তার একটি বিবরণ সহ এই ইস্যুতে একটি ফোরাম পোস্ট রয়েছে:

http://wordpress.org/support/topic/disable-attachment-posts-without-remove-the-medias

সংযুক্তিগুলি আসলে একটি পোস্টের ধরণ, তাই তারা কোনও পোস্টের মতো পোস্ট টেবিলের মতো একটি সারিতে থাকে, তাদের সর্বদা একটি ইউআরএল পাওয়া যায়, পোস্টগুলি যেভাবে করে ..

অর্থাত। example.com/?p=16

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

আপনি যা জিজ্ঞাসা করছেন তা হ'ল প্রতিটি মিডিয়া আইটেমের জন্য পৃথক সংযুক্তি URL গুলির স্বয়ংক্রিয় অস্তিত্ব বন্ধ করার উপায় (আসলেই সম্ভব নয় কারণ এগুলি মূলত একটি পোস্ট ধরণের, যার অর্থ তারা সর্বদা তাদের জন্য একটি URL হবেন)।

যদিও এখানে একটি পরামর্শ রয়েছে, যে কোনও টেম্পলেট (থিম) ফাইল, সূচি.পি.পি.পি., পেজ.এফপি, আর্কাইভ.পিএপি বা আপনার যা পছন্দ হোক না কেন, একটি অনুলিপি তৈরি করুন এবং যদি আপনি সমস্ত মিডিয়া টার্গেট করতে চান তবে ইমেজ.এইচপি বা সংযুক্তি.পিএফ নামকরণ করুন । ফাইলটি খুলুন, লুপটি সরিয়ে দিন, সংরক্ষণ করুন ... এবং সংযুক্তি পৃষ্ঠাগুলির মধ্যে একটি লোড করুন (আপনি যেমন পূর্বে সরবরাহ করেছিলেন) ..

আমার বক্তব্য, আপনাকে যা করতে হবে তা হ'ল একটি সংযুক্তি টেম্পলেট ফাইল তৈরি করুন: http://codex.wordpress.org/Template_Hierarchy
http://codex.wordpress.org/Template_Hierarchy#Attachment_display

যদি আপনি চান, তত্ত্বের ভিত্তিতে আপনি সংযুক্তি টেম্পলেটটিতে একটি পুনর্নির্দেশ স্থাপন করতে পারেন যাতে স্বতন্ত্র সংযুক্তি দর্শনগুলি পুনঃনির্দেশিত হয় (বা আপনি যে কোনও কাজ করতে চাইলে যে কোনও সংখ্যক)।

কেউ কেবল এটি পোস্ট করেছেন, attachment.phpএমনটি যা আপনার /themesফোল্ডারে পুনঃনির্দেশ করতে যায় :

<?php
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.get_permalink($post->post_parent));
?>

6

আমি বুঝতে পারি এটি প্রায় সময় সম্পর্কে আমি অন্তত সংযুক্তি পৃষ্ঠাগুলি মুছে ফেলার জন্য আমার হাত চেষ্টা করেছি।

এটি এখানে আমার প্রথম শট ...

add_filter( 'attachment_fields_to_edit', 'wpse_25144_attachment_fields_to_edit', 10000, 2 );

function wpse_25144_attachment_fields_to_edit( $form_fields, $post ) {

    $url_type = get_option( 'image_default_link_type' );

    if( 'post' == $url_type ) {
        update_option( 'image_default_link_type', 'file' );
        $url_type = 'file';
    }

    $form_fields['url'] = array(
        'label'      => __('Link URL'),
        'input'      => 'html',
        'html'       => wpse_25144_image_link_input_fields( $post, $url_type ),
        'helps'      => __('Enter a link URL or click above for presets.')
    );

    return $form_fields;
}

function wpse_25144_image_link_input_fields($post, $url_type = '') {

    $file = wp_get_attachment_url($post->ID);

    if( empty( $url_type ) )
        $url_type = get_user_setting( 'urlbutton', 'file' );

    $url = '';
    if( $url_type == 'file' )
        $url = $file;

    return "
    <input type='text' class='text urlfield' name='attachments[$post->ID][url]' value='" . esc_attr($url) . "' /><br />
    <button type='button' class='button urlnone' title=''>" . __('None') . "</button>
    <button type='button' class='button urlfile' title='" . esc_attr($file) . "'>" . __('File URL') . "</button>
";
}

add_filter( 'query_vars', 'wpse_25144_query_vars', 10000, 2 );

function wpse_25144_query_vars( $wp_query_vars ) {

    foreach( $wp_query_vars as $i => $qv ) {
        if( in_array( $qv, array( 'attachment', 'attachment_id' ) ) )
            unset( $wp_query_vars[$i] );
    }
    return $wp_query_vars;
}

add_filter( 'attachment_link', 'wpse_25144_attachment_link', 10000, 2 );

function wpse_25144_attachment_link( $link, $id ) {

    $link = wp_get_attachment_url( $id );
    return $link;
}

add_filter( 'rewrite_rules_array', 'wpse_25144_rewrite_rules_array', 10000 );

function wpse_25144_rewrite_rules_array( $rewriteRules ) {

    foreach( $rewriteRules as $pattern => $query_string ) {
        if( false === strpos( $pattern, 'attachment' ) && false === strpos( $query_string, 'attachment' ) )
            continue;
        unset( $rewriteRules[$pattern] );
    }

    return $rewriteRules;
}

সংযুক্তি পুনর্লিখনগুলি সরিয়ে দেয়, সংযুক্তি ফাইলটিতে বিন্যাসের জন্য সংযুক্তি লিঙ্কগুলি আপডেট করে (পরিবর্তে এটি পারমালিঙ্ক হয়), সংযুক্তি ক্যোয়ারী ওয়ার্স সরিয়ে দেয় এবং সংযুক্তিগুলিকে এখন-অ-অস্তিত্বযুক্ত সংযুক্তি পারমলিংকের সাথে সংযোগ করার ক্ষমতাও সরিয়ে দেয়।

সমালোচনার জন্য উন্মুক্ত। :)


5

আপনি তাদের পিতামাতার পৃষ্ঠায় সংযুক্তিগুলির জন্য 301 পুনর্নির্দেশটি এটি করতে পারেন:

<?php
/*
Plugin Name: Redirect Attachments to Parent (301)
Plugin URI: http://wordpress.stackexchange.com/questions/25144/unwanted-media-library-urls-in-posts
Description: Redirect any attachemnt pages to their parent's page with 301 redirection
Author: Ashfame
Version: 0.1
Author URI: http://www.ashfame.com/
*/

add_action( 'template_redirect', 'attachment_post_type_redirection' );

function attachment_post_type_redirection() {
    global $wp_query;       
    if ( is_attachment() ) {            
        wp_redirect( get_permalink( $wp_query->post->post_parent ), 301 );
    }       
}

5

Yoast এর এসইও প্লাগইন রয়েছে অধীনে "পুনর্চালনা সংযুক্তি URL- এ পিতা বা মাতা পোস্ট URL" -এর পার্মালিনক্স । আমি সমস্যাটি সমাধান করার জন্য এই বিকল্পটি ব্যবহার করেছি। প্লাগইনটি আশ্চর্যজনক।


ভাল ধারণা, তবে নিশ্চিত নয় যে আমি এই একটি বিশেষ সমস্যাটি সমাধান করার জন্য একটি সম্পূর্ণ মাল্টি-ফাংশন প্লাগইন চাই ..
জেফ আতউড

0

এটি সম্পর্কিত সম্পর্কিত একটি সম্পর্কিত উত্তর: সংযুক্তি পৃষ্ঠা সম্পূর্ণরূপে অক্ষম করুন

এই পদ্ধতিটি পুনর্লিখনের নিয়মগুলিকে সংশোধন করে।

আপনি ডিফল্ট পুনর্লিখনের নিয়মগুলি ফিল্টার করতে পারেন এবং সংযুক্তিগুলির জন্য সেগুলি সরাতে পারেন:

function cleanup_default_rewrite_rules( $rules ) {
    foreach ( $rules as $regex => $query ) {
        if ( strpos( $regex, 'attachment' ) || strpos( $query, 'attachment' ) ) {
            unset( $rules[ $regex ] );
        }
    }

    return $rules; 
} 
add_filter( 'rewrite_rules_array', 'cleanup_default_rewrite_rules' );  

আপনার পারমিলিকগুলি একবারে সংরক্ষণ করতে ভুলবেন না। ওয়ার্ডপ্রেস সংযুক্তি সম্পর্কিত কোনও কিছু ছাড়াই নতুন বিধি তৈরি করবে।

/wordpress//a/271089/71608

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