আপনার ফাংশন.এফপি ফাইলের জন্য কোডের সেরা সংগ্রহ [বন্ধ]


331

প্রশ্ন বা উত্তরের বাম দিকে ইউপি তীরটি ক্লিক করে প্রশ্নটি এবং আপনার যে কোনও উত্তরটি দরকারী মনে হয়েছে তাতে ভোট দিন।

অন্যান্য যারা এখন এই পোস্টটি দেখছেন তাদের মতো, আমি আমার ওয়ার্ডপ্রেস দক্ষতা শিখতে ও উন্নত করতে বিভিন্ন ব্লগ, ফোরাম এবং আলোচনার গ্রুপগুলি পড়ছি। গত 12 মাস ধরে আমি functions.phpপরিবর্তে আমার ফাইলে কোড যুক্ত করে আমার প্লাগিনগুলির ব্যবহারের বিকল্প হিসাবে মিশনে চলেছি । যদিও আমি সম্পূর্ণরূপে সম্মত হই যে প্লাগিনগুলি অনেক পরিস্থিতিতে বেশ কার্যকর, আমার অভিজ্ঞতা প্রমাণ করেছে যে 90% ব্যবহারের ক্ষেত্রে যদিও একটি প্লাগইন উপস্থিত থাকতে পারে, আসলে এটি ব্যবহার করা অপ্রয়োজনীয় জটিলতা এবং সামঞ্জস্যের সমস্যা তৈরি করতে পারে। অতিরিক্ত সংখ্যক ক্ষেত্রে এই জাতীয় প্লাগইনগুলি মেনু এবং অন্যান্য অ্যাডমিন উপাদান যুক্ত করে যা আমি চাই না বা প্রয়োজন নেই।

প্রায়শই না আমি খুঁজে পেয়েছি যে প্লাগইনগুলির কোড বিশ্লেষণ করে আমি যে কোডটি চেয়েছিলাম তা টুকরো টুকরো করে বের করতে সক্ষম হয়েছি এবং হার্ড কোডটি আমার মধ্যে functions.php। এটি আমাকে অপ্রয়োজনীয় উপাদানগুলি অন্তর্ভুক্ত না করে আমার প্রয়োজনীয় কার্যকারিতা সরবরাহ করেছিল।

সুতরাং, এই পোস্টের উদ্দেশ্যটি আপনাকে, পাঠক / অ্যাডমিন / বিকাশকারীকে জড়িত করার জন্য আমার প্রচেষ্টা এবং আপনি যে কোনও কোড বিটগুলি দরকারী বলে মনে করেন এবং অন্যটি আপনার function.phpওয়ার্ডপ্রেসকে ব্যবহার না করে ওয়ার্ডপ্রেস প্রসারিত বা উন্নত করতে আপনার থিমের ফাইলটিতে যুক্ত করেছেন তা এখানে ভাগ করে নেওয়ার জন্য আমার প্রচেষ্টা is প্লাগ লাগানো.

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

আমি আপনার সমস্ত প্রতিক্রিয়ার প্রত্যাশায় রয়েছি এবং অবশ্যই যখনই আমি এটি খুঁজে পাই আমার নিজের নতুন অনুসন্ধানগুলি যুক্ত করে দেব।


13
প্রথম 5 টি উত্তর বিবেচনা করে ওপি এবং প্রশ্নটি একটি একক, চূড়ান্ত উত্তরের পরিবর্তে প্রতিক্রিয়াগুলির একটি অ্যারে সংগ্রহ করার দিকে আরও তত্পর বলে মনে হয়, এটি একটি সম্প্রদায়ের উইকি হওয়া উচিত।
ইমামান

17
কোনও থিমের সাথে সম্পর্কিত নয় এমন সমস্ত উত্তর অপসারণ করা উচিত। এই কোডিংটি খারাপ কোডিং অনুশীলনের জন্য একটি ভাল উদাহরণ।
ফুসিয়া

17
আমার মনে হয় এটা জনগণের কাছে উৎসাহিত করার জন্য ভালো হতে চাই একটি কাস্টম কার্যকারিতা প্লাগইন তৈরি তাদের থিমের থিমের functions.php ব্যবহার পরিবর্তে
ইয়ান ডান

3
@ নেটকন্সট্রাক্টর.কম পৃষ্ঠা দেখার খাঁটি সংখ্যা গুণমানের জন্য কোনও সূচক নয়। নির্দিষ্ট উত্তর এবং ভাল কোডিং অনুশীলন সহ আমাদের নির্দিষ্ট প্রশ্নগুলিকে উত্সাহ দেওয়া উচিত। এই থ্রেড বিপরীত।
ফুসিয়া

6
@ NetConstructor.com তে এটি আলোচনা মেটা যেখানে লোকেরা আপনার আর্গুমেন্ট ভাল দেখতে পারেন। :)
ফুক্সিয়া

উত্তর:


107

সমস্ত সাইট সেটিংস প্রদর্শন করে লুকানো প্রশাসনিক বৈশিষ্ট্য সক্ষম করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.1 আরসি 3

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

// CUSTOM ADMIN MENU LINK FOR ALL SETTINGS
   function all_settings_link() {
    add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');
   }
   add_action('admin_menu', 'all_settings_link');

উন্নয়নের জন্য দুর্দান্ত! আমি আমার প্লাগইনগুলির জন্য ডিবি সংস্করণগুলি সংরক্ষণ করার জন্য ঘন ঘন অপশন টেবিল ব্যবহার করি ... একটি আপগ্রেড স্ক্রিপ্ট পরীক্ষা করতে কোনও পুরানো ডিবি সংস্করণে পুনরায় সেট করতে phpMyAdmin ব্যবহার করা একটি ব্যথা ... এটি এটিকে এত সহজ করে দেবে !!!
EAMAN

3
আপনি একই বিকল্প বিকল্প পৃষ্ঠাতে (লগ ইন থাকা অবস্থায়)
আপনারসাইট

89

লগইন লোগো এবং চিত্রের URL লিঙ্কটি সংশোধন করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.1

এই কোডটি আপনাকে সহজেই এই লোগোটির href লিঙ্ক এবং শিরোনাম পাঠ্যের পাশাপাশি ওয়ার্ডপ্রেস লগইন পৃষ্ঠা লোগোটি সংশোধন করার অনুমতি দেবে।

add_filter( 'login_headerurl', 'namespace_login_headerurl' );
/**
 * Replaces the login header logo URL
 *
 * @param $url
 */
function namespace_login_headerurl( $url ) {
    $url = home_url( '/' );
    return $url;
}

add_filter( 'login_headertitle', 'namespace_login_headertitle' );
/**
 * Replaces the login header logo title
 *
 * @param $title
 */
function namespace_login_headertitle( $title ) {
    $title = get_bloginfo( 'name' );
    return $title;
}

add_action( 'login_head', 'namespace_login_style' );
/**
 * Replaces the login header logo
 */
function namespace_login_style() {
    echo '<style>.login h1 a { background-image: url( ' . get_template_directory_uri() . '/images/logo.png ) !important; }</style>';
}

সম্পাদনা: আপনি যদি লগইন লোগোটি প্রতিস্থাপনের জন্য সাইটের লোগোটি ব্যবহার করতে চান তবে আপনি সেই তথ্যটি ডায়নামিকভাবে টানতে নিম্নলিখিতটি ব্যবহার করতে পারেন ( ডাব্লুপি 3 .5 তে পরীক্ষা করেছেন ):

function namespace_login_style() {
    if( function_exists('get_custom_header') ){
        $width = get_custom_header()->width;
        $height = get_custom_header()->height;
    } else {
        $width = HEADER_IMAGE_WIDTH;
        $height = HEADER_IMAGE_HEIGHT;
    }
    echo '<style>'.PHP_EOL;
    echo '.login h1 a {'.PHP_EOL; 
    echo '  background-image: url( '; header_image(); echo ' ) !important; '.PHP_EOL;
    echo '  width: '.$width.'px !important;'.PHP_EOL;
    echo '  height: '.$height.'px !important;'.PHP_EOL;
    echo '  background-size: '.$width.'px '.$height.'px !important;'.PHP_EOL;
    echo '}'.PHP_EOL;
    echo '</style>'.PHP_EOL;
}

79

অনুসন্ধানের ফলাফলগুলিতে কাস্টম পোস্টের প্রকারগুলি অন্তর্ভুক্ত করুন।

// MAKE CUSTOM POST TYPES SEARCHABLE
function searchAll( $query ) {
 if ( $query->is_search ) { $query->set( 'post_type', array( 'site', 'plugin', 'theme', 'person' )); } 
 return $query;
}
add_filter( 'the_search_query', 'searchAll' );

ডিফল্টরূপে আপনার কাস্টম পোস্ট প্রকারগুলি আপনার সাইটের প্রধান আরএসএস ফিডে যুক্ত করুন।

// ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED
function custom_feed_request( $vars ) {
 if (isset($vars['feed']) && !isset($vars['post_type']))
  $vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' );
 return $vars;
}
add_filter( 'request', 'custom_feed_request' );

"ডান এখন" অ্যাডমিন ড্যাশবোর্ড উইজেটে কাস্টম পোস্টের প্রকারগুলি অন্তর্ভুক্ত করুন

এটিতে আপনার কাস্টম পোস্টের ধরণ এবং "রাইট এখন" ড্যাশবোর্ড উইজেটে প্রতিটি ধরণের পোস্টের গণনা অন্তর্ভুক্ত থাকবে।

// ADD CUSTOM POST TYPES TO THE 'RIGHT NOW' DASHBOARD WIDGET
function wph_right_now_content_table_end() {
 $args = array(
  'public' => true ,
  '_builtin' => false
 );
 $output = 'object';
 $operator = 'and';
 $post_types = get_post_types( $args , $output , $operator );
 foreach( $post_types as $post_type ) {
  $num_posts = wp_count_posts( $post_type->name );
  $num = number_format_i18n( $num_posts->publish );
  $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) );
  if ( current_user_can( 'edit_posts' ) ) {
   $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>";
   $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>";
  }
  echo '<tr><td class="first num b b-' . $post_type->name . '">' . $num . '</td>';
  echo '<td class="text t ' . $post_type->name . '">' . $text . '</td></tr>';
 }
 $taxonomies = get_taxonomies( $args , $output , $operator ); 
 foreach( $taxonomies as $taxonomy ) {
  $num_terms  = wp_count_terms( $taxonomy->name );
  $num = number_format_i18n( $num_terms );
  $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms ));
  if ( current_user_can( 'manage_categories' ) ) {
   $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>";
   $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>";
  }
  echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>';
  echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>';
 }
}
add_action( 'right_now_content_table_end' , 'wph_right_now_content_table_end' );

এই উত্তরের শেষ স্নিপেট সম্পর্কিত। আমি প্রতিটি পোস্ট টাইপের জন্য ম্যানুয়ালি এগুলি যুক্ত করছিলাম বলে এটি দুর্দান্ত সংযোজন। এটির সাথে আমার একমাত্র সমস্যাটি হ'ল এটি ডিফল্ট "বিভাগ" এবং "ট্যাগ" প্রবেশের পরে ডেটা যুক্ত করে। আপনি কি নিজের উত্তরটি ডিফল্ট "বিভাগ" বা "ট্যাগ "গুলিকে সরানোর জন্য আপডেট করতে পারেন বা এগুলি সরাতে পারেন যাতে সেগুলি ম্যানুয়ালি যুক্ত করা যায়?
নেটকন্সট্রাক্টর.কম

@ নেটকন্সট্রাক্টর.কম আপনার অনুরোধটি বুঝতে পেরেছি বলে আমি মনে করি না। যদি আমি এটি করি তবে আমার মনে হয় এটি করা কিছু কঠিন কাজ হবে এবং কীভাবে এটি করবেন তা নির্ধারণের জন্য এখনই সত্যিকার অর্থে সময় নেই।
জারেডুইলি

অনুসন্ধান ফলাফলে কাস্টম পোস্ট ধরনের অন্তর্ভুক্ত করুন - আমি অনুমান, এখন আপনি এই সঙ্গে কাজ করতে পারেন exclude_from_searchএর PARAM register_post_type...
Krzysiek Dróżdż

78

অ্যাডমিন ব্যবহারকারী ব্যতীত সকল ব্যবহারকারীর জন্য আপডেট বিজ্ঞপ্তি সরান

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

এই কোডটি নিশ্চিত করবে যে আপডেটগুলি উপলব্ধ থাকাকালীন "অ্যাডমিন" ব্যতীত অন্য কোনও ব্যবহারকারীকে ওয়ার্ডপ্রেস দ্বারা অবহিত করা হবে ..

// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN
   global $user_login;
   get_currentuserinfo();
   if ($user_login !== "admin") { // change admin to the username that gets the updates
    add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
    add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
   }

অ্যাডমিন ব্যবহারকারীদের জন্য আপডেট বিজ্ঞপ্তি প্রদর্শনের জন্য পরিবর্তিত সংস্করণ (কেবলমাত্র ব্যবহারকারী 'অ্যাডমিন'-এর বিপরীতে):

// REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT SYSADMIN
       global $user_login;
       get_currentuserinfo();
       if (!current_user_can('update_plugins')) { // checks to see if current user can update plugins 
        add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
        add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
       }

8
এটি আদর্শের চেয়ে অনেক কম। এটি কেবল তখনই কাজ করবে যদি প্রশাসকের লগইন এখনও ডিফল্ট 'অ্যাডমিন' হয়, যা এটি সুরক্ষার কারণে কম্পন করে না। পরিবর্তে আপনার একটি নির্দিষ্ট সক্ষমতা যাচাই করা উচিত যা আপনি বার্তাগুলি লোকদের দেখতে চান।
jerclarke

1
অর্থাত্ যদি (! বর্তমান_ইউজার_কেনশন ('ম্যানেজ_ওপশনস')) {... অ্যাড_ফিল্টার ...} - দ্বিগুণ মন্তব্যের জন্য দুঃখিত, আমি ভুলে গেছি যে
আঘাতগুলি

আমি কেন কোডটিতে মন্তব্য যুক্ত করেছি যেখানে আপনি প্রশাসকের ব্যবহারকারীর নাম পরিবর্তন করতে পারেন। আপনি কীভাবে এটি উন্নত / পুনরায় লিখবেন?
নেটকন্সট্রাক্টর.কম

সর্বোত্তম উপায় হ'ল গ্লোবাল $ ইউজার_লগিন এবং get_currentuserinfo () সরিয়ে এবং পরিবর্তে আপনার ক্লজটিতে কারেন্ট_উজার_ক্যান ব্যবহার করুন। এটি 3 এর পরিবর্তে কেবল 1 লাইন এবং এটির আদর্শ উপায় way আপনি বার্তাগুলিতে অভিনয় করার জন্য প্রয়োজনীয় সক্ষমতা যাচাই করতে পারেন, এক্ষেত্রে 'আপডেট_কোর' এবং 'আপডেট_প্লাগিনস' রয়েছে।
জার্কার্ক

2
সুতরাং: যদি (! বর্তমান_ইউজার_কেন ('আপডেট_প্লাগিনগুলি')) {/ *
বার্তাগুলি সরান

72

গুগল সিডিএন থেকে jQuery লোড হচ্ছে

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

// even more smart jquery inclusion :)
add_action( 'init', 'jquery_register' );

// register from google and for footer
function jquery_register() {

if ( !is_admin() ) {

    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' ), false, null, true );
    wp_enqueue_script( 'jquery' );
}
}

সুরক্ষার জন্য ওয়ার্ডপ্রেস সংস্করণ তথ্য সরান

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

// remove version info from head and feeds
function complete_version_removal() {
    return '';
}
add_filter('the_generator', 'complete_version_removal');

ফ্রন্ট এন্ডে মন্তব্যগুলিতে স্প্যাম যোগ করুন এবং লিঙ্কগুলি মুছুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

এটি স্প্যাম যোগ করে লিঙ্কগুলি মোছার মাধ্যমে সামনের প্রান্ত থেকে মন্তব্যগুলি পরিচালনা করা সহজ করে তোলে * **

// spam & delete links for all versions of wordpress
function delete_comment_link($id) {
    if (current_user_can('edit_post')) {
        echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&c='.$id.'">del</a> ';
        echo '| <a href="'.get_bloginfo('wpurl').'/wp-admin/comment.php?action=cdc&dt=spam&c='.$id.'">spam</a>';
    }
}

আরএসএস ফিডে সর্বজনীন পোস্টিং বিলম্ব করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

পরিশেষে, আমি আমার আরএসএস ফিডগুলিতে 10-15 মিনিটের জন্য পোস্ট করতে দেরি করতে চাই কারণ আমি সর্বদা আমার পাঠ্যে কমপক্ষে কয়েকটি দোষ খুঁজে পাই errors অন্যান্য ব্যবহারগুলি যদি আপনার কন্টেন্টটিকে আপনার আরএসএস পাঠকদের সামনে ঠেলে দেওয়ার আগে একদিন বা এক সপ্তাহের জন্য আপনার সাইটের সাথে একচেটিয়া রাখতে চান তবে অন্যান্য ব্যবহারগুলি।

// delay feed update
function publish_later_on_feed($where) {
    global $wpdb;

    if (is_feed()) {
        // timestamp in WP-format
        $now = gmdate('Y-m-d H:i:s');

        // value for wait; + device
        $wait = '10'; // integer

        // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
        $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

        // add SQL-sytax to default $where
        $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
    }
    return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

আমার পোস্টে উত্স: wpengineer.com/320/publish-the-feed-later আরো তথ্য সহ
বেটেলজ

1
আপনি কেবল জেনারেটর ফিল্টারটিও সরাতে পারেন:remove_action('wp_head', 'wp_generator');
জিপেটো

25
ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js মাত্র এক ঘন্টা পরে মেয়াদ শেষ হবে। Ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js - এর সর্বদা সম্পূর্ণ সংস্করণ তথ্য ব্যবহার করুন - যা এক বছরের পরে শেষ হয়।
ফুসিয়া

5
"সুরক্ষার জন্য ওয়ার্ডপ্রেস সংস্করণ তথ্য সরান" কোডটি আসলে আপনার সাইটের সুরক্ষা বাড়ানোর জন্য কিছুই করে না। এমনকি এটি আপনার সাইটে ডাব্লুপি সংস্করণ ব্যবহার করা বন্ধ করে দেয় না।
জোসেফ স্কট

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

58

ডিবি ব্লাট এড়াতে সর্বাধিক সংখ্যক পোস্ট পুনর্বিবেচনা নির্ধারণ করুন।

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

ডিফল্ট অসীম, এটি এটি কেবলমাত্র সর্বশেষ 5 টি সম্পাদনা মনে রাখার জন্য সেট করবে:

/**
 * Set the post revisions unless the constant was set in wp-config.php
 */
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);

FWIW কনস্ট্যান্টগুলির জন্য প্রচুর দুর্দান্ত ধারণা রয়েছে যা কোডেক্স পৃষ্ঠায় সম্পাদনা করে wp-config.php এ সেট করা যেতে পারে ।


এটি কি প্রতি পোস্ট টাইপের ভিত্তিতে সেট করা যায়?
নেটকন্সট্রাক্টর.কম

Wp_save_post_revision () এ এর ​​ব্যবহারের দিকে তাকানো পোস্টের ধরণের ভিত্তিতে আলাদা করার উপায় বলে মনে হয় না। মানটিতে কোনও ফিল্টার বা কিছুই নেই, যদিও সম্ভবত এটি থাকা উচিত।
jerclarke

ধন্যবাদ জেরেমি - অন্য কারও কাছে, যদি আপনি এটি করতে জানেন তবে দয়া করে এটি এখানে পোস্ট করুন।
নেটকন্সট্রাক্টর.কম

1
ব্যক্তিগতভাবে আমি পছন্দ 10. আমি জানি এটা ডবল কিন্তু সবসময় যখন আমি একটি সংস্করণ প্রয়োজন এটা সবসময় পুরোনো তারপর 5 এর
janw

56

ওয়ার্ডপ্রেস প্রোফাইলিং সরঞ্জাম

আমি একটি পৃথক ফাইলে প্রোফাইলিং সরঞ্জাম যুক্ত করতে চাই, যা প্রয়োজন পরে যখন আমি ফাংশন.এফপি থেকে অন্তর্ভুক্ত করি:

<?php
if ( !defined('SAVEQUERIES') && isset($_GET['debug']) && $_GET['debug'] == 'sql' )
    define('SAVEQUERIES', true);
if ( !function_exists('dump') ) :
/**
 * dump()
 *
 * @param mixed $in
 * @return mixed $in
 **/

function dump($in = null) {
    echo '<pre style="margin-left: 0px; margin-right: 0px; padding: 10px; border: solid 1px black; background-color: ghostwhite; color: black; text-align: left;">';
    foreach ( func_get_args() as $var ) {
        echo "\n";
        if ( is_string($var) ) {
            echo "$var\n";
        } else {
            var_dump($var);
        }
    }
    echo '</pre>' . "\n";
    return $in;
} # dump()
endif;

/**
 * add_stop()
 *
 * @param mixed $in
 * @param string $where
 * @return mixed $in
 **/

function add_stop($in = null, $where = null) {
    global $sem_stops;
    global $wp_object_cache;
    $queries = get_num_queries();
    $milliseconds = timer_stop() * 1000;
    $out =  "$queries queries - {$milliseconds}ms";
    if ( function_exists('memory_get_usage') ) {
        $memory = number_format(memory_get_usage() / ( 1024 * 1024 ), 1);
        $out .= " - {$memory}MB";
    }
    $out .= " - $wp_object_cache->cache_hits cache hits / " . ( $wp_object_cache->cache_hits + $wp_object_cache->cache_misses );
    if ( $where ) {
        $sem_stops[$where] = $out;
    } else {
        dump($out);
    }
    return $in;
} # add_stop()


/**
 * dump_stops()
 *
 * @param mixed $in
 * @return mixed $in
 **/

function dump_stops($in = null) {
    if ( $_POST )
        return $in;
    global $sem_stops;
    global $wp_object_cache;
    $stops = '';
    foreach ( $sem_stops as $where => $stop )
        $stops .= "$where: $stop\n";
    dump("\n" . trim($stops) . "\n");
    if ( defined('SAVEQUERIES') && $_GET['debug'] == 'sql' ) {
        global $wpdb;
        foreach ( $wpdb->queries as $key => $data ) {
            $query = rtrim($data[0]);
            $duration = number_format($data[1] * 1000, 1) . 'ms';
            $loc = trim($data[2]);
            $loc = preg_replace("/(require|include)(_once)?,\s*/ix", '', $loc);
            $loc = "\n" . preg_replace("/,\s*/", ",\n", $loc) . "\n";
            dump($query, $duration, $loc);
        }
    }
    if ( $_GET['debug'] == 'cache' )
        dump($wp_object_cache->cache);
    if ( $_GET['debug'] == 'cron' ) {
        $crons = get_option('cron');
        foreach ( $crons as $time => $_crons ) {
            if ( !is_array($_crons) )
                continue;
            foreach ( $_crons as $event => $_cron ) {
                foreach ( $_cron as $details ) {
                    $date = date('Y-m-d H:m:i', $time);
                    $schedule = isset($details['schedule']) ? "({$details['schedule']})" : '';
                    if ( $details['args'] )
                        dump("$date: $event $schedule", $details['args']);
                    else
                        dump("$date: $event $schedule");
                }
            }
        }
    }
    return $in;
} # dump_stops()
add_action('init', create_function('$in', '
    return add_stop($in, "Load");
    '), 10000000);
add_action('template_redirect', create_function('$in', '
    return add_stop($in, "Query");
    '), -10000000);
add_action('wp_footer', create_function('$in', '
    return add_stop($in, "Display");
    '), 10000000);
add_action('admin_footer', create_function('$in', '
    return add_stop($in, "Display");
    '), 10000000);

/**
 * init_dump()
 *
 * @return void
 **/

function init_dump() {
    global $hook_suffix;
    if ( !is_admin() || empty($hook_suffix) ) {
        add_action('wp_footer', 'dump_stops', 10000000);
        add_action('admin_footer', 'dump_stops', 10000000);
    } else {
        add_action('wp_footer', 'dump_stops', 10000000);
        add_action("admin_footer-$hook_suffix", 'dump_stops', 10000000);
    }
} # init_dump()
add_action('wp_print_scripts', 'init_dump');


/**
 * dump_phpinfo()
 *
 * @return void
 **/

function dump_phpinfo() {
    if ( isset($_GET['debug']) && $_GET['debug'] == 'phpinfo' ) {
        phpinfo();
        die;
    }
} # dump_phpinfo()
add_action('init', 'dump_phpinfo');


/**
 * dump_http()
 *
 * @param array $args
 * @param string $url
 * @return array $args
 **/

function dump_http($args, $url) {
    dump(preg_replace("|/[0-9a-f]{32}/?$|", '', $url));
    return $args;
} # dump_http()


/**
 * dump_trace()
 *
 * @return void
 **/

function dump_trace() {
    $backtrace = debug_backtrace();
    foreach ( $backtrace as $trace )
        dump(
            'File/Line: ' . $trace['file'] . ', ' . $trace['line'],
            'Function / Class: ' . $trace['function'] . ', ' . $trace['class']
            );
} # dump_trace()
if ( $_GET['debug'] == 'http' )
    add_filter('http_request_args', 'dump_http', 0, 2);
?>

এটি সংশোধন করার কোন দ্রুত উপায় আছে যাতে আপনার প্রশাসক এবং ডিবাগের তথ্য প্রদর্শনের জন্য ইউআরএলটিতে কিছু যুক্ত করলেই স্ক্রিপ্টটি কেবল কল হয়?
নেটকন্সট্রাক্টর.কম

1
এটা কিভাবে আমার থিম মধ্যে সম্পন্ন হল: semiologic.com/software/sem-reloaded - /inc/debug.php /functions.php বা /inc/init.php দ্বারা অন্তর্ভুক্ত করা হয় (উপরে বন্ধ প্রত্যাহার করতে পারবেন না আমার মাথা)।
ডেনিস ডি বার্নার্ডি

52

পুনরায় আকারযুক্ত চিত্রগুলি শার্প করুন (কেবল jpg)

এই ফাংশনটি পুনরায় আকারের জেপিজি চিত্রগুলিকে তীক্ষ্ণ করা। পার্থক্যের একটি উদাহরণ:http://dl.dropbox.com/u/1652601/forrst/gdsharpen.png

function ajx_sharpen_resized_files( $resized_file ) {

    $image = wp_load_image( $resized_file );
    if ( !is_resource( $image ) )
        return new WP_Error( 'error_loading_image', $image, $file );

    $size = @getimagesize( $resized_file );
    if ( !$size )
        return new WP_Error('invalid_image', __('Could not read image size'), $file);
    list($orig_w, $orig_h, $orig_type) = $size;

    switch ( $orig_type ) {
        case IMAGETYPE_JPEG:
            $matrix = array(
                array(-1, -1, -1),
                array(-1, 16, -1),
                array(-1, -1, -1),
            );

            $divisor = array_sum(array_map('array_sum', $matrix));
            $offset = 0; 
            imageconvolution($image, $matrix, $divisor, $offset);
            imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));
            break;
        case IMAGETYPE_PNG:
            return $resized_file;
        case IMAGETYPE_GIF:
            return $resized_file;
    }

    return $resized_file;
}   

add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);

আরও ভাল জেপিগস, ধন্যবাদ একটি গুচ্ছ! 3.4-alpha
brasofilo

2
যদি আপনি ছেলেরা এটি প্লাগইন হিসাবে চান: wordpress.org/extend/plugins/sharpen-resized-images
alnsal Korkmas

এই ফাংশনটি কোথায় যায়?
স্টিভিড

@ স্টেভিডি - শিরোনামের পরামর্শ অনুসারে এটি আপনার টেমপ্লেটে ফাংশন.এফপি এর ভিতরে চলে যায়। যদিও আমি সাবধান থাকব, এই ফাংশনটি প্রায় 8 বছর বয়সী।
timofey.com

51

ডিফল্ট ওয়ার্ডপ্রেস মেটা বক্সগুলি সরান

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

এই কোডটি আপনাকে নির্দিষ্ট মেটা বাক্সগুলি সরাতে দেয় যা ওয়ার্ডপ্রেস ডিফল্টরূপে ডিফল্টরূপে যোগ / সম্পাদনা পোস্ট এবং পৃষ্ঠা সম্পাদনা / সম্পাদনা পৃষ্ঠা স্ক্রিনে যুক্ত করে।

// REMOVE META BOXES FROM DEFAULT POSTS SCREEN
   function remove_default_post_screen_metaboxes() {
 remove_meta_box( 'postcustom','post','normal' ); // Custom Fields Metabox
 remove_meta_box( 'postexcerpt','post','normal' ); // Excerpt Metabox
 remove_meta_box( 'commentstatusdiv','post','normal' ); // Comments Metabox
 remove_meta_box( 'trackbacksdiv','post','normal' ); // Talkback Metabox
 remove_meta_box( 'slugdiv','post','normal' ); // Slug Metabox
 remove_meta_box( 'authordiv','post','normal' ); // Author Metabox
 }
   add_action('admin_menu','remove_default_post_screen_metaboxes');


// REMOVE META BOXES FROM DEFAULT PAGES SCREEN
   function remove_default_page_screen_metaboxes() {
 remove_meta_box( 'postcustom','page','normal' ); // Custom Fields Metabox
 remove_meta_box( 'postexcerpt','page','normal' ); // Excerpt Metabox
 remove_meta_box( 'commentstatusdiv','page','normal' ); // Comments Metabox
 remove_meta_box( 'trackbacksdiv','page','normal' ); // Talkback Metabox
 remove_meta_box( 'slugdiv','page','normal' ); // Slug Metabox
 remove_meta_box( 'authordiv','page','normal' ); // Author Metabox
 }
   add_action('admin_menu','remove_default_page_screen_metaboxes');

4
এই ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জারএইভিশন / প্রশ্নগুলি / ৩৪৪০০/২ অনুসারে আমি এইভাবে স্লাগডিভটি আড়াল করব না, তবে এই gist.github.com/1863830 পরিবর্তে ব্যবহার করব

@ করভাননূরলুস আপনার গিথুব লিঙ্কটি নষ্ট হয়েছে।
user7003859

48

"ওয়ার্ডপ্রেস" "ওয়ার্ডপ্রেস" ফিল্টার থেকে সরান

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

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

// Remove annoying P filter
if(function_exists('capital_P_dangit')) {
    foreach ( array( 'the_content', 'the_title' ) as $filter ) 
        remove_filter( $filter, 'capital_P_dangit', 11 ); 

    remove_filter('comment_text', 'capital_P_dangit', 31 );
}

গ্রেট সামান্য সন্ধান। সেই জিনিসগুলির মধ্যে একটি যা কেবলমাত্র প্রয়োজন নেই এমন কোডের অন্য অংশটি সরিয়ে দেয়
নেটকন্সট্রাক্টর.কম

5
ওয়ার্ডপ্রেস 3.0.০.১ এ, এই ফিল্টারটি অগ্রাধিকার 11 সহ যুক্ত করা হয়েছে , সুতরাং 11এটি অপসারণ করতে আপনার তৃতীয় পরামিতি হিসাবে যুক্ত করা দরকার ।
জান ফ্যাব্রি

46

ড্যাশবোর্ড কাস্টমাইজ করুন

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
   global $wp_meta_boxes;

এই ড্যাশবোর্ড উইজেটগুলি সরান ...

   unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
   unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
   unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

'সহায়তা এবং সমর্থন' নামে একটি কাস্টম উইজেট যুক্ত করুন

   wp_add_dashboard_widget('custom_help_widget', 'Help and Support', 'custom_dashboard_help');
}

এটি আপনার কাস্টম উইজেটের সামগ্রী

 function custom_dashboard_help() {
    echo '<p>Lorum ipsum delor sit amet et nunc</p>';
}

44

কাস্টম ব্যবহারকারী প্রোফাইল ক্ষেত্রগুলি যুক্ত করুন

কাস্টম ব্যবহারকারী প্রোফাইল ক্ষেত্রগুলি যুক্ত করতে আপনার ফাংশন.এফপি ফাইলের নীচে কোডটি রাখুন। আপনি উপযুক্ত দেখতে লাইনগুলি সম্পাদনা করুন বা যুক্ত করুন।

লাইনটি অপসারণ করবেন না মনে রাখবেন: যোগাযোগ $ পরিচিতিগুলি; অন্যথায় এটি কাজ করবে না।

// CUSTOM USER PROFILE FIELDS
   function my_custom_userfields( $contactmethods ) {

    // ADD CONTACT CUSTOM FIELDS
    $contactmethods['contact_phone_office']     = 'Office Phone';
    $contactmethods['contact_phone_mobile']     = 'Mobile Phone';
    $contactmethods['contact_office_fax']       = 'Office Fax';

    // ADD ADDRESS CUSTOM FIELDS
    $contactmethods['address_line_1']       = 'Address Line 1';
    $contactmethods['address_line_2']       = 'Address Line 2 (optional)';
    $contactmethods['address_city']         = 'City';
    $contactmethods['address_state']        = 'State';
    $contactmethods['address_zipcode']      = 'Zipcode';
    return $contactmethods;
   }
   add_filter('user_contactmethods','my_custom_userfields',10,1);

কাস্টম ক্ষেত্রগুলি প্রদর্শন করতে আপনি নীচের তালিকাভুক্ত দুটি পদ্ধতির একটি ব্যবহার করতে পারেন।

বিকল্প 1:

the_author_meta('facebook', $current_author->ID)

বিকল্প 2:

<?php $current_author = get_userdata(get_query_var('author')); ?>
<p><a href="<?php echo esc_url($current_author->contact_phone_office);?>" title="office_phone"> Office Phone</a></p>

41

অ্যাডমিন মেনুর ক্রম কাস্টমাইজ করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

এই কোডটি আপনাকে অ্যাডমিন মেনুতে উপাদানগুলির ক্রম পুনর্গঠিত করার অনুমতি দেবে। আপনাকে যা করতে হবে তা হ'ল অ্যাডমিন মেনুতে বিদ্যমান লিঙ্কটিতে ক্লিক করা এবং / ডাব্লুপি-অ্যাডমিন / ইউআরএল এর আগে সমস্ত কিছু অনুলিপি করা। নীচের ক্রমটি নতুন অ্যাডমিন মেনুতে থাকা ক্রমের প্রতিনিধিত্ব করে।

// CUSTOMIZE ADMIN MENU ORDER
   function custom_menu_order($menu_ord) {
       if (!$menu_ord) return true;
       return array(
        'index.php', // this represents the dashboard link
        'edit.php?post_type=events', // this is a custom post type menu
        'edit.php?post_type=news', 
        'edit.php?post_type=articles', 
        'edit.php?post_type=faqs', 
        'edit.php?post_type=mentors',
        'edit.php?post_type=testimonials',
        'edit.php?post_type=services',
        'edit.php?post_type=page', // this is the default page menu
        'edit.php', // this is the default POST admin menu 
    );
   }
   add_filter('custom_menu_order', 'custom_menu_order');
   add_filter('menu_order', 'custom_menu_order');

সত্যিকার অর্থে কোনও কোর ফিল্টার রয়েছে custom_menu_order? আমি একটিও পাইনি ...
কায়সার

4
@ কাইজার এখানে নথিভুক্ত করেছেন কোডেক্স.ওয়ার্ডপ্রেস.আর.
ম্যানি ফ্লুরমন্ড

40

এক্সারপটের দৈর্ঘ্য পরিবর্তন করার কাজ

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

ডিফল্টরূপে সমস্ত অংশ 55 শব্দে আবৃত থাকে। নীচের কোডটি ব্যবহার করে আপনি এই ডিফল্ট সেটিংস ওভাররাইড করতে পারেন:

function new_excerpt_length($length) { 
    return 100;
}

add_filter('excerpt_length', 'new_excerpt_length');

এই উদাহরণটি উদ্ধৃত্ত দৈর্ঘ্যকে 100 শব্দের পরিবর্তিত করে, তবে আপনি এটি কোনও পদ্ধতিতে পরিবর্তন করতে একই পদ্ধতি ব্যবহার করতে পারেন।


@ ব্যবহারকারী 402 ... শব্দ বা অক্ষর দ্বারা এই টুপিটি কি? আপনি দুজনে কিভাবে পোস্ট করতে পারেন?
নেটকন্সট্রাক্টর.কম

3
@ নেটকন্সট্রাক্টর.কম শব্দ দ্বারা এই ফাংশনটি (এবং excerpt_lengthহুক) ক্যাপ করুন
EAMAN

হেহ। আমি ফিল্টার কোর যোগ হয়েছে। :)
ডুগল ক্যাম্পবেল

38

পরিচালনা / পোস্টের তালিকাতে থাম্বনেইল যুক্ত করুন

থাম্বনেইল পূর্বরূপ সহ একটি নতুন কলাম তালিকা / সম্পাদনা পোস্ট এবং পৃষ্ঠাগুলি তালিকাতে প্রদর্শন করতে আপনি এটি আপনার কার্যগুলিতে যুক্ত করতে পারেন।

/****** Add Thumbnails in Manage Posts/Pages List ******/
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {

    // for post and page
    add_theme_support('post-thumbnails', array( 'post', 'page' ) );

    function AddThumbColumn($cols) {

        $cols['thumbnail'] = __('Thumbnail');

        return $cols;
    }

    function AddThumbValue($column_name, $post_id) {

            $width = (int) 35;
            $height = (int) 35;

            if ( 'thumbnail' == $column_name ) {
                // thumbnail of WP 2.9
                $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
                // image from gallery
                $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                    }
                }
                    if ( isset($thumb) && $thumb ) {
                        echo $thumb;
                    } else {
                        echo __('None');
                    }
            }
    }

    // for posts
    add_filter( 'manage_posts_columns', 'AddThumbColumn' );
    add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );

    // for pages
    add_filter( 'manage_pages_columns', 'AddThumbColumn' );
    add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );
}

কলামটি কীভাবে দূর বামে সরানো যায়?
ধনী

38

আপনার নিজের ব্লগে পিংস সরান

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

//remove pings to self
function no_self_ping( &$links ) {
    $home = get_option( 'home' );
    foreach ( $links as $l => $link )
        if ( 0 === strpos( $link, $home ) )
            unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

কতবার এবং কখন ওয়ার্ডপ্রেস পিং থাকে?
নেটকন্সট্রাক্টর.কম

আমি আসলে বেশিরভাগ ক্ষেত্রে এই সমস্যা আছে। আমি যদি আমার ডাব্লুপি ব্লগে অন্য পোস্টের অভ্যন্তরীণ লিঙ্কটি উল্লেখ করি তবে আমি নিজের কাছ থেকে একটি ট্র্যাকব্যাক বা পিংব্যাক পাই (কোনটি মনে নেই)। এটা বিরক্তিকর.
সাহস কাট্টা

একই অবস্থা. আমার কাছে একটি নিউজ / ম্যাগাজিনের ব্লগ এবং অন্যান্য নিবন্ধগুলির লিঙ্ক রয়েছে প্রায়শই।
স্টিভেন

35

GZIP আউটপুট সংক্ষেপণ সক্ষম করুন

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

 if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
   add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));

32

ডিবি অনুসন্ধানগুলি, সময় ব্যয় এবং মেমরির খরচ প্রদর্শন করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

function performance( $visible = false ) {

    $stat = sprintf(  '%d queries in %.3f seconds, using %.2fMB memory',
        get_num_queries(),
        timer_stop( 0, 3 ),
        memory_get_peak_usage() / 1024 / 1024
        );

    echo $visible ? $stat : "<!-- {$stat} -->" ;
}

তারপরে উপরের কোডের নীচে এই কোড যা আপনার পাবলিক ওয়েবসাইটের পাদদেশে স্বয়ংক্রিয়ভাবে উপরের কোডটি sertোকাবে (নিশ্চিত করুন যে আপনার থিম wp_footer কল করছে):

add_action( 'wp_footer', 'performance', 20 );

একাধিকবার বলা যেতে পারে।


পিএইচপি <5.2 ব্যবহারের জন্যmemory_get_usage()
onetrickpony

31

WP ডিফল্ট উইজেটগুলি নিবন্ধভুক্ত করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.1

// unregister all default WP Widgets
function unregister_default_wp_widgets() {
    unregister_widget('WP_Widget_Pages');
    unregister_widget('WP_Widget_Calendar');
    unregister_widget('WP_Widget_Archives');
    unregister_widget('WP_Widget_Links');
    unregister_widget('WP_Widget_Meta');
    unregister_widget('WP_Widget_Search');
    unregister_widget('WP_Widget_Text');
    unregister_widget('WP_Widget_Categories');
    unregister_widget('WP_Widget_Recent_Posts');
    unregister_widget('WP_Widget_Recent_Comments');
    unregister_widget('WP_Widget_RSS');
    unregister_widget('WP_Widget_Tag_Cloud');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);

আমি এটি সংস্করণ 3.1.4 এ ব্যবহার করেছি। উইজেটগুলি এখনও আছে। কারও কি ধারণা আছে?
ব্যবহারকারী 391

এখনও ডব্লিউপি 4.5 এ কাজ করে :)
টিম ম্যালোন

30

পোস্টের সামগ্রী থেকে প্রথম চিত্রটি অটো উত্তোলন করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

এই কোডটি কোনও পোস্টের সাথে সম্পর্কিত প্রথম চিত্রটি স্বয়ংক্রিয়ভাবে উত্তোলন করবে এবং আপনাকে getImage ফাংশনটিতে কল করে এটি প্রদর্শন / ব্যবহার করার অনুমতি দেবে।

// AUTOMATICALLY EXTRACT THE FIRST IMAGE FROM THE POST 
function getImage($num) {
    global $more;
    $more = 1;
    $link = get_permalink();
    $content = get_the_content();
    $count = substr_count($content, '<img');
    $start = 0;
    for($i=1;$i<=$count;$i++) {
        $imgBeg = strpos($content, '<img', $start);
        $post = substr($content, $imgBeg);
        $imgEnd = strpos($post, '>');
        $postOutput = substr($post, 0, $imgEnd+1);
        $postOutput = preg_replace('/width="([0-9]*)" height="([0-9]*)"/', '',$postOutput);;
        $image[$i] = $postOutput;
        $start=$imgEnd+1;
    }
    if(stristr($image[$num],'<img')) { echo '<a href="'.$link.'">'.$image[$num]."</a>"; }
    $more = 0;
}

6
দুর্দান্ত, তবে get_the_image এটির সাথে খুব ভাল কাজ করে। wordpress.org/extend/plugins/get-the-image
artlung

সঠিক তবে এটি আলাদাভাবে কাজ করে এবং বিভিন্ন সমস্যা সমাধান করে যা get_the_image বিবেচনায় না নেয়
নেটকন্সট্রাকটর.কম

3
এটি get_the_image স্ক্রিপ্টের চেয়ে আলাদাভাবে কী করে?
ম্যাট

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

আমি আপনাকে পরামর্শ দিচ্ছি wordpress.org/extend/plugins/auto-post-thumbnail স্বয়ংক্রিয়ভাবে পোস্টে প্রথম চিত্রটি বা কোনো কাস্টম পোস্ট টাইপ শুধুমাত্র থেকে পোস্টটিকে থাম্বনেইল (আলোচিত থাম্বনেইল) উৎপন্ন করে পোস্ট থাম্বনেইল সেট না করা হয়
Ünsal Korkmaz

27

কোন শিরোনামে কোনও থিম টেমপ্লেট কোনও পোস্ট / পৃষ্ঠা ফাইল করে তা আউটপুট দেয়

add_action('wp_head', 'show_template');
function show_template() {
    global $template;
    print_r($template);
}

আপনার থিম যদি পোস্ট_ক্লাস ব্যবহার করে থাকে তবে ডিফল্ট ডিআইভি আউটপুট সংক্ষিপ্ত করুন।

যদি আপনার থিমটি এমন কিছু ব্যবহার করছে

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

আপনার উত্সটিতে আপনার ক্রেজি দীর্ঘ ডিভ থাকতে পারে যা দেখতে এটি আরও দীর্ঘতর হতে পারে:

<div id="post-4" class="post-4 post type-post hentry category-uncategorized category-test category-test-1-billion category-test2 category-test3 category-testing"> 

এটি সত্যই আপনার উত্সকে বিশৃঙ্খলা শুরু করতে পারে এবং বেশিরভাগ ক্ষেত্রে অপ্রয়োজনীয় বলে মনে হয়, 3-4 ডুবে যাওয়ার পক্ষে যথেষ্ট ভাল।

শীর্ষ উদাহরণের জন্য আমরা আউটপুটটি এর মতো স্লাইস করতে পারি:

// slice crazy long div outputs
    function category_id_class($classes) {
        global $post;
        foreach((get_the_category($post->ID)) as $category)
            $classes[] = $category->category_nicename;
            return array_slice($classes, 0,5);
    }
    add_filter('post_class', 'category_id_class');

এটি প্রথম প্রথম 5 টি মানগুলিকে অন্তর্ভুক্ত করতে আউটপুটকে টুকরো টুকরো করে দেয় তাই উপরের উদাহরণটি হয়ে যায়:

<div id="post-4" class="post-4 post type-post hentry category-uncategorized"> 

বিভাগের সংরক্ষণাগারগুলি পোস্টের ধরণ ছাড়াই সকল পোস্ট প্রদর্শন করুন: কাস্টম পোস্ট ধরণের জন্য ভাল

function any_ptype_on_cat($request) {
 if ( isset($request['category_name']) )
  $request['post_type'] = 'any';

 return $request;
}
add_filter('request', 'any_ptype_on_cat');

অযাচিত ড্যাশবোর্ড আইটেমগুলি সরান

এটি ইতিমধ্যে পোস্ট করা হয়েছে তবে এতে আইটেমের সম্পূর্ণ তালিকা নেই। বিশেষত যারা বিরক্তিকর "আগত লিঙ্কগুলি!"

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
 //Right Now - Comments, Posts, Pages at a glance
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
//Recent Comments
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
//Incoming Links
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
//Plugins - Popular, New and Recently updated Wordpress Plugins
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);

//Wordpress Development Blog Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
//Other Wordpress News Feed
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
//Quick Press Form
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
//Recent Drafts List
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
}

"আরও পড়ুন" পৃষ্ঠা ঝাঁপ দাও **

পরিবর্তে পৃষ্ঠার শীর্ষে ফিরে আসুন। আপনি কীভাবে জানেন যে আপনি যখন "আরও পড়ুন" ক্লিক করেন তখন এটি পৃষ্ঠার স্পটে চলে যাবে যা বিরক্তিকর হতে পারে, এটি কেবল পৃষ্ঠাটিকে সাধারণভাবে লোড করে তোলে, কোনও জাম্পিং হয় না!

function remove_more_jump_link($link) { 
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

ব্যবহারকারীর উপর ভিত্তি করে অ্যাডমিন মেনু আইটেমগুলি সীমাবদ্ধ করুন , ব্যবহারকারীর নামটি প্রকৃত ব্যবহারকারীর নামের সাথে প্রতিস্থাপন করুন।

function remove_menus()
{
    global $menu;
    global $current_user;
    get_currentuserinfo();

    if($current_user->user_login == 'username')
    {
        $restricted = array(__('Posts'),
                            __('Media'),
                            __('Links'),
                            __('Pages'),
                            __('Comments'),
                            __('Appearance'),
                            __('Plugins'),
                            __('Users'),
                            __('Tools'),
                            __('Settings')
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }// end while

    }// end if
}
add_action('admin_menu', 'remove_menus');

// বিকল্প হিসাবে আপনি যদি ব্যবহার করতে পারেন ($ বর্তমান_ ব্যবহারকারী_> ব্যবহারকারী_লগিন! = 'অ্যাডমিন'), সম্ভবত আরও দরকারী

ট্যাগ মেঘ স্টাইল করুন

//tag cloud custom
add_filter('widget_tag_cloud_args','style_tags');
function style_tags($args) {
$args = array(
     'largest'    => '10',
     'smallest'   => '10',
     'format'     => 'list',
     );
return $args;
}

বিকল্পগুলির সম্পূর্ণ রেফারেন্স (এখানে অনেক কিছুই আছে!) Http://codex.wordpress.org/Function_Reference/wp_tag_cloud

ডিফল্ট আরএসএস উইজেট আপডেট টাইমার পরিবর্তন করুন

(ডিফল্ট 6 বা 12 ঘন্টা আমি ভুলে যাই (1800 = 30 মিনিট)।

add_filter( 'wp_feed_cache_transient_lifetime', create_function('$fixrss', 'return 1800;') );

আপনি কি দয়া করে পরের কয়েক সপ্তাহের মধ্যে এগুলির প্রত্যেককে পৃথক উত্তরগুলিতে ভাগ করে নিতে পারেন? আমি এটি আপনার জন্য করতে যাচ্ছিলাম তবে এটির মতো মনে করতে চাইনি যে আমি আপনার উত্তরগুলির জন্য ক্রেডিট নিচ্ছি। যাই হোক না কেন - আমি এই সংগঠিত রাখার চেষ্টা করছি যাতে ব্যবহারকারীরা সহজেই তাদের অনুসন্ধান করা তথ্য খুঁজে পেতে পারে। অগ্রিম ধন্যবাদ
নেটকন্সট্রাক্টর.কম

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

দুঃখিত নেটকন্সট্রাক্টর আমি এখনই আপনার মন্তব্যটি দেখেছি। ব্যবহারকারীর ভূমিকার জন্য আমি "কারেন্ট_ইউজার_কেন" ব্যবহার করব। আমার এটি পরীক্ষা করার সময় নেই তবে যখন আমি করি তখন আমি এটি যুক্ত করব।
উইক

wp_feed_cache_transient_ LifeTime এর জন্য ডিফল্ট মান 43200 (12 ঘন্টা)
brasofilo

26

কেবলমাত্র অ্যাক্টিভ প্লাগইনগুলির জন্য প্লাগইন আপডেটের বিজ্ঞপ্তি সরান

function update_active_plugins($value = '') {
    /*
    The $value array passed in contains the list of plugins with time
    marks when the last time the groups was checked for version match
    The $value->reponse node contains an array of the items that are
    out of date. This response node is use by the 'Plugins' menu
    for example to indicate there are updates. Also on the actual
    plugins listing to provide the yellow box below a given plugin
    to indicate action is needed by the user.
    */
    if ((isset($value->response)) && (count($value->response))) {

        // Get the list cut current active plugins
        $active_plugins = get_option('active_plugins');    
        if ($active_plugins) {

            //  Here we start to compare the $value->response
            //  items checking each against the active plugins list.
            foreach($value->response as $plugin_idx => $plugin_item) {

                // If the response item is not an active plugin then remove it.
                // This will prevent WordPress from indicating the plugin needs update actions.
                if (!in_array($plugin_idx, $active_plugins))
                    unset($value->response[$plugin_idx]);
            }
        }
        else {
             // If no active plugins then ignore the inactive out of date ones.
            foreach($value->response as $plugin_idx => $plugin_item) {
                unset($value->response);
            }          
        }
    }  
    return $value;
}
add_filter('transient_update_plugins', 'update_active_plugins');    // Hook for 2.8.+
//add_filter( 'option_update_plugins', 'update_active_plugins');    // Hook for 2.7.x

1
এটি অগত্যা একটি ভাল ধারণা নয় - একটি নিষ্ক্রিয় প্লাগইন ফাইল সিস্টেমে এখনও উপস্থিত রয়েছে এবং সাইটটি হ্যাক করার জন্য একটি অনিরাপদ একটি এখনও ব্যবহার করা যেতে পারে। প্লাগিনগুলি সর্বদা আপ টু ডেট রাখতে হবে।
টিম ম্যালোন

25

<head>ট্যাগের মধ্যে অতিরিক্ত অতিরিক্ত তথ্য এবং এইচটিএমএল সরান

// remove unnecessary header info
add_action( 'init', 'remove_header_info' );
function remove_header_info() {
    remove_action( 'wp_head', 'rsd_link' );
    remove_action( 'wp_head', 'wlwmanifest_link' );
    remove_action( 'wp_head', 'wp_generator' );
    remove_action( 'wp_head', 'start_post_rel_link' );
    remove_action( 'wp_head', 'index_rel_link' );
    remove_action( 'wp_head', 'adjacent_posts_rel_link' );         // for WordPress < 3.0
    remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' ); // for WordPress >= 3.0
}

// remove extra CSS that 'Recent Comments' widget injects
add_action( 'widgets_init', 'remove_recent_comments_style' );
function remove_recent_comments_style() {
    global $wp_widget_factory;
    remove_action( 'wp_head', array(
        $wp_widget_factory->widgets['WP_Widget_Recent_Comments'],
        'recent_comments_style'
    ) );
}

23

লাইভ সাইটগুলিতে ত্রুটি ডিবাগিং এবং লগিং সক্ষম করুন

আমি ডাব্লুপিপিডিইউইউবিজি কনস্ট্যান্টগুলি ব্যবহার করার জন্য এটি লিখেছি এমন একটি কোডের টুকরো যা সাধারণত ডিফল্টরূপে অক্ষম থাকে। ওয়েল, আমি কেবলমাত্র WP_DEBUG সক্ষম করার জন্য একটি উপায় তৈরি করেছি যাতে আপনি এটি কোনও নেতিবাচক পার্শ্ব প্রতিক্রিয়া ছাড়াই কোনও লাইভ সাইটে ব্যবহার করতে পারেন, তবে ত্রুটিগুলি প্রদর্শন করতে বাধ্য করার জন্য, এবং একটি লগ ফাইল তৈরি করার জন্য আমি অন্যান্য ডিবাগিং ধ্রুবকগুলিও ব্যবহার করেছি I / ডাব্লুপি-কনটেন্ট ডিরেক্টরিতে ত্রুটি এবং বিজ্ঞপ্তি।

আপনার ডাব্লুপি-কনফিগারেশন.এফপি ফাইলটিতে এই কোডটি ফেলে দিন (আপনি যদি একটি ব্যাকআপ কেবলমাত্র সংরক্ষণ করেন) এবং তারপরে আপনি আপনার সাইটের যে কোনও ইউআরএল শেষে? ডিবাগ = 1, 2 বা 3 পরামিতিগুলি পাস করতে পারেন।

? ডিবাগ = 1 = সমস্ত ত্রুটি / নোটিশ দেখায়? ডিবাগ = 2 = এগুলি প্রদর্শিত হতে বাধ্য করে? ডিবাগ = 3 = / ডাব্লুপি-কনটেন্ট ডির সমস্ত ত্রুটির একটি ডিবাগ.লগ ফাইল তৈরি করে।

/**
* Written by Jared Williams - http://new2wp.com
* @wp-config.php replace WP_DEBUG constant with this code
* Enable WP debugging for usage on a live site
* http://core.trac.wordpress.org/browser/trunk/wp-includes/load.php#L230
* Pass the '?debug=#' parameter at the end of any url on site
*
* http://example.com/?debug=1, /?debug=2, /?debug=3
*/
if ( isset($_GET['debug']) && $_GET['debug'] == '1' ) {
    // enable the reporting of notices during development - E_ALL
    define('WP_DEBUG', true);
} elseif ( isset($_GET['debug']) && $_GET['debug'] == '2' ) {
    // must be true for WP_DEBUG_DISPLAY to work
    define('WP_DEBUG', true);
    // force the display of errors
    define('WP_DEBUG_DISPLAY', true);
} elseif ( isset($_GET['debug']) && $_GET['debug'] == '3' ) {
    // must be true for WP_DEBUG_LOG to work
    define('WP_DEBUG', true);
    // log errors to debug.log in the wp-content directory
    define('WP_DEBUG_LOG', true);
}

আপনার আগ্রহী হলে কমলুভের জন্য আমি যে গেস্ট পোস্টটি লিখেছিলাম সে সম্পর্কে আমি আরও বিশদে যাচ্ছি, এখানে: http://comluv.com/dev/enable-debugging-and-logging-for-live-site-usage/

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

কিন্তু এটি সেখানে আরও জটিল হয়ে ওঠে।


আমরা লাইভ, স্টেজিং এবং ডেভ ডাটাবেস সংযোগের বিশদটির মতো অনুরূপ কিছু ব্যবহার করি।
টম

20

স্বয়ংক্রিয়ভাবে সর্বজনীন পৃষ্ঠাগুলিতে গতিশীল শিরোনাম যুক্ত করুন

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

নীচের কোডটি ব্যবহার করা পৃষ্ঠাগুলি / পোস্টগুলিতে সর্বজনীনভাবে দেখা হচ্ছে তার উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে গতিশীল পৃষ্ঠা শিরোনাম তৈরি করবে।

/* Dynamic Titles **/
// This sets your <title> depending on what page you're on, for better formatting and for SEO
// You need to set the variable $longd to some custom text at the beginning of the function
function dynamictitles() {
$longd = __('Enter your longdescription here.', 'texdomainstring');
    if ( is_single() ) {
      wp_title('');
      echo ' | '.get_bloginfo('name');

} else if ( is_page() || is_paged() ) {
      bloginfo('name');
      wp_title('|');

} else if ( is_author() ) {
      bloginfo('name');
      wp_title(' | '.__('Author', 'texdomainstring'));

} else if ( is_category() ) {
      bloginfo('name');
      wp_title(' | '.__('Archive for', 'texdomainstring'));

} else if ( is_tag() ) {
      echo get_bloginfo('name').' | '.__('Tag archive for', 'texdomainstring');
      wp_title('');

} else if ( is_archive() ) {
      echo get_bloginfo('name').' | '.__('Archive for', 'texdomainstring');
      wp_title('');

} else if ( is_search() ) {
      echo get_bloginfo('name').' | '.__('Search Results', 'texdomainstring');
} else if ( is_404() ) {
      echo get_bloginfo('name').' | '.__('404 Error (Page Not Found)', 'texdomainstring');

} else if ( is_home() ) {
      echo get_bloginfo('name').' | '.get_bloginfo('description');

} else {
      echo get_bloginfo('name').' | '.($blog_longd);
}
}

20

নতুন ভূমিকা এবং ক্ষমতা - কেবল একবার চালানো!

আমি এই সহজ রাখি, এটি একটি প্লাগইন ছাড়াই সঠিক উপায়। তারা বিকল্পগুলির ডাটাবেসে একটি একক ক্ষেত্র (উপসর্গ_ ব্যবহারকারী_রোলেস) সেট করে এবং সেগুলি সেট করার জন্য আপনার কোনও প্লাগইন লাগবে না। কী ক্ষমতা উপলব্ধ রয়েছে তার তালিকার জন্য এবং তারা কী করে তার জন্য বিবরণের জন্য কোডেক্স পৃষ্ঠাটি দেখুন। আপনাকে কেবল এইগুলির মধ্যে একটি ব্লককে নিয়ন্ত্রণ করতে হবে, যে কোনও পৃষ্ঠা লোড করুন এবং তারপরে তাদের আবার মন্তব্য করুন! এখানে আমি এমন একটি ভূমিকা তৈরি করছি যা আমার প্রয়োজনীয় দক্ষতা পেয়েছে:

/* Capabilities */

// To add the new role, using 'international' as the short name and
// 'International Blogger' as the displayed name in the User list and edit page:
/*
add_role('international', 'International Blogger', array(
    'read' => true, // True allows that capability, False specifically removes it.
    'edit_posts' => true,
    'delete_posts' => true,
    'edit_published_posts' => true,
    'publish_posts' => true,
    'edit_files' => true,
    'import' => true,
    'upload_files' => true //last in array needs no comma!
));
*/


// To remove one outright or remove one of the defaults:
/* 
remove_role('international');
*/

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

/*
$edit_role = get_role('author');
   $edit_role->add_cap('edit_published_posts');
   $edit_role->remove_cap('delete_published_posts');
*/

আমি কোডেক্স পৃষ্ঠা থেকে গ্রিডের সাথে একটি স্প্রেডশিট রেখেছি যেগুলি এইভাবে সংশোধন করে, এই উদাহরণগুলিকে নিঃশর্ত ছেড়ে রাখবেন না, বা এটি প্রতিটি পৃষ্ঠা লোড সহ ডাটাবেসে লিখবে!


উপরে উল্লিখিত ফাংশনগুলি অপশন ডাটাবেসের একটি ক্ষেত্রে লিখুন। তাদের মন্তব্য করা এবং অসুবিধে দেওয়া হ'ল উপায়। ব্যবহারকারীর ভূমিকার জন্য প্লাগইন রয়েছে, তবে আপনি যদি উপরে উল্লিখিত ফাংশনগুলি ব্যবহার করেন তবে আপনি এই ফাংশনগুলি চলমান রাখতে পারবেন না, এবং কোনও নির্দিষ্ট ব্যবহারকারী কোনও কিছু অ্যাক্সেস করছে কিনা তা ভিত্তিতে আপনার সেগুলি একাধিকবার সেট করতে হবে না বা তাদের ভিত্তিতে সেট করার দরকার নেই। যদি আপনি এটি চান তবে সেই ব্যবহারকারীকে একটি নির্দিষ্ট, অনন্য ভূমিকা সহ সেট করুন। এবং কোডেক্সের বিষয়ে উল্লেখ করুন, আমি উপরে যা কিছু লিখেছি তা যদি আপনি কোনও প্লাগইন না করে করেন তবে 100% সঠিক। প্রায় প্রতিটি ক্ষেত্রে, আপনার একবার ব্যবহারকারীর ভূমিকা সেট করতে হবে।
tomcat23

@ টমক্যাট ২৩: উদাহরণস্বরূপ, আমি এটি কেবল একটি ভূমিকা যুক্ত করার জন্য এটি একটি ফাংশনটিতে গুটিয়ে রেখেছিলাম, যখন এটি ইতিমধ্যে বিদ্যমান নেই। অন্য দ্রষ্টব্য: আমি অনুমান করি যে ভূমিকাটি অন্যরকম কিছু থেকে ক্যাপগুলি পুনরুদ্ধার করে এবং ভূমিকায় অন্তর্নির্মিত থেকে ক্ষমতাগুলি যুক্ত / অপসারণের মাধ্যমে ভূমিকাগুলির কোথাও ভূমিকা রাখা আরও সহজ হবে। এটির ক্যাপগুলি প্রাক্তনের মধ্যে কোথাও রাখা হয়েছে কিনা তা মনে রাখা আরও স্পষ্ট এবং সহজ করে তুলবে। অ্যাডমিন এবং সম্পাদক। - আমি আশা করি আপনি উত্তরটি সম্পাদনা করেছেন তাতে আপনার আপত্তি হবে না। যদি আপনি করেন, তবে এটির পিছনে ভূমিকা রাখবেন। :)
কায়সার

1
@ tomcat23 - এই সময়ে ব্রিজের নীচে জল। আমি যা বলছি তা হ'ল, আমি সবাইকে এগিয়ে নিয়ে যাওয়ার জন্য শান্তি বজায় রাখতে দোষারোপ করতে আগ্রহী নই। :)
মাইকচিন্কেল

2
@ মাইকস্কিঙ্কেল হ্যাঁ, আপনি ঠিক বলেছেন। @ কেজার আমার ক্ষমা চাইছি যদি আমি আপনাকে অপমানিত করি।
tomcat23

1
@ মাইকচিন্কেল: শান্তি ফিরিয়ে আনার জন্য ধন্যবাদ। @ টমক্যাট ২৩: না, আপনি করেননি। আমি এই ধরণের সমালোচনা মোকাবিলা করতে পারি। আমার ক্ষমাও।
কায়সার

19

ওয়ার্ডপ্রেস কাস্টম অ্যাডমিন ফুটার

// অ্যাডমিন ফুটার পাঠ্য কাস্টমাইজ করুন
ফাংশন কাস্টম_এডমিন_ফুটার () {
        প্রতিধ্বনি 'আপনার কাস্টম ফুটার পাঠ্য এবং এইচটিএমএল এখানে যুক্ত করুন';
} 
অ্যাড_ফিল্টার ('অ্যাডমিন_ফুটার_েক্সট', 'কাস্টম_এডমিন_ফুটার');

দেব হিসাবে আমার সাথে যোগাযোগ করার জন্য আমি ক্লায়েন্ট সাইটগুলির জন্য এটি একটি সাধারণ রেফারেন্স হিসাবে ব্যবহার করি।


19

উইজেটগুলিতে শর্টকড সক্ষম করুন

// shortcode in widgets
if ( !is_admin() ){
    add_filter('widget_text', 'do_shortcode', 11);
}

18

আরএসএস ফিডগুলি অক্ষম করার কাজ ction

পরীক্ষিত: ওয়ার্ডপ্রেস 3.0.0

আপনি যদি আপনার ওয়ার্ডপ্রেস ভিত্তিক ওয়েবসাইটকে স্থিতিশীল রাখতে চান তবে আপনি আরএসএস ফিড অক্ষম করতে পারবেন।

আপনি এই ফাংশনটি ব্যবহার করতে পারেন:

function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}

add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);


ধন্যবাদ তোসচো! উত্সটি ইংরাজীতেও
বেল্টেজ

16

"হাউডি" বার্তাটিকে "স্বাগতম" তে পরিবর্তন করুন

এই ফাংশনটি দিয়ে আপনি আপনার অ্যাডমিন অঞ্চলের উপরের ডানদিকে "কীভাবে" বার্তাটি কাস্টমাইজ করতে পারেন।
এই ফাংশনটি "হাউডি" বার্তাটিকে "স্বাগতম" তে পরিবর্তন করতে JQuery ব্যবহার করে।

/****** Customize admin message "Howdy" to "Welcome" ******/
$nohowdy = "Welcome";

if (is_admin()) {
    add_action('init', 'artdev_nohowdy_h');
    add_action('admin_footer', 'artdev_nohowdy_f');
}
// Load jQuery
function artdev_nohowdy_h() {
    wp_enqueue_script('jquery');
}
// Modify
function artdev_nohowdy_f() {
global $nohowdy;
echo <<<JS
<script type="text/javascript">
//<![CDATA[
var nohowdy = "$nohowdy";
jQuery('#user_info p')
    .html(
    jQuery('#user_info p')
        .html()
        .replace(/Howdy/,nohowdy)
    );
//]]>
JS;
}

gettextফিল্টার ব্যবহার করে পিএইচপি সংস্করণ :

add_filter('gettext', 'change_howdy', 10, 3);

function change_howdy($translated, $text, $domain) {

    if (!is_admin() || 'default' != $domain)
        return $translated;

    if (false !== strpos($translated, 'Howdy'))
        return str_replace('Howdy', 'Welcome', $translated);

    return $translated;
}

3
এটি কি পিএইচপি সাইডে ইতিমধ্যে সম্পাদিত হতে পারে তাই এটি আউটপুট আদৌ পায় না?
হ্যাক্রে

এটি নিশ্চিতভাবে 3.0+ সংস্করণে এখানে দুর্দান্ত কাজ করছে তবে পুরানো সংস্করণগুলিতে কেন নয়? আপনার ব্যবহৃত অন্য কোনও প্লাগইন এর জন্য দায়ী কিনা তা পরীক্ষা করুন। এখানে লেখাটি জিকুয়েরির সাথে প্রতিস্থাপন করা হয়েছে, সম্ভবত কোনও জিকুয়েরি প্লাগইন রয়েছে?
ফিলিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.