function zn_norm_path( $url ) { $p = wp_parse_url( html_entity_decode( trim( $url ) ) ); if ( ! $p ) return ''; $host = isset( $p['host'] ) ? strtolower( preg_replace( '/^www\./', '', $p['host'] ) ) : ''; if ( $host && $host !== 'zahidenotes.com' ) return ''; return '/' . trim( strtolower( isset( $p['path'] ) ? $p['path'] : '' ), '/' ); } function zn_tokens( $s ) { $s = preg_replace( '/_\d+$/', '', strtolower( $s ) ); $parts = preg_split( '/[^a-z0-9]+/', $s, -1, PREG_SPLIT_NO_EMPTY ); $stop = array( 'the', 'of', 'to', 'for', 'and', 'a', 'an', 'in', 'on', 'pdf', 'download', 'free', 'by', 'with', 'is', 'your', 'at', 'all' ); $out = array(); foreach ( $parts as $w ) { if ( in_array( $w, $stop, true ) ) continue; if ( preg_match( '/^20[1-3]\d$/', $w ) ) continue; if ( strlen( $w ) > 3 && substr( $w, -1 ) === 's' ) $w = substr( $w, 0, -1 ); $out[ $w ] = true; } return array_keys( $out ); } function zn_score( $a, $b ) { if ( ! $a || ! $b ) return 0; $i = count( array_intersect( $a, $b ) ); if ( ! $i ) return 0; $u = count( array_unique( array_merge( $a, $b ) ) ); return 0.7 * ( $i / count( $a ) ) + 0.3 * ( $i / $u ); } /* 404 par: jo purana URL approve ho chuka hai usay naye page par 301 */ add_action( 'template_redirect', function () { if ( ! is_404() ) return; $path = '/' . trim( strtolower( (string) parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ) ), '/' ); $map = get_option( 'zn_map', array() ); if ( isset( $map[ $path ] ) && strpos( $map[ $path ], 'id:' ) === 0 ) { $l = get_permalink( (int) substr( $map[ $path ], 3 ) ); if ( $l ) { wp_redirect( $l, 301 ); exit; } } }, 0 ); add_action( 'admin_menu', function () { add_management_page( 'ZN Link Mapper', 'ZN Link Mapper', 'manage_options', 'zn-mapper', 'zn_mapper_page' ); } ); function zn_mapper_form( $act, $offset, $label, $auto = false, $extra = '' ) { echo '
'; wp_nonce_field( 'zn_map' ); echo '' . $extra; echo '
'; if ( $auto ) echo ''; } function zn_mapper_page() { if ( ! current_user_can( 'manage_options' ) ) return; echo '

ZN Link Mapper

'; if ( ! function_exists( 'zn_link_is_broken' ) || ! function_exists( 'zn_find_post_id' ) ) { echo '

Pehle ZN Fixer aur ZN Link Cleaner snippets active hone chahiye.

'; return; } global $wpdb; $act = isset( $_POST['act'] ) ? sanitize_key( $_POST['act'] ) : ''; $offset = isset( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 0; if ( $act ) check_admin_referer( 'zn_map' ); $batch = 50; $busy = false; /* ---- 1) SCAN ---- */ if ( $act === 'scan' ) { $scan = $offset === 0 ? array() : get_option( 'zn_scan', array() ); $ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type IN ('post','page') AND post_status IN ('publish','draft','private') ORDER BY ID ASC LIMIT %d OFFSET %d", $batch, $offset ) ); foreach ( $ids as $id ) { $c = $wpdb->get_var( $wpdb->prepare( "SELECT post_content FROM {$wpdb->posts} WHERE ID=%d", $id ) ); if ( ! preg_match_all( '#]*?href=(["\'])(.*?)\1#is', $c, $mm ) ) continue; foreach ( $mm[2] as $u ) { if ( ! zn_link_is_broken( $u ) ) continue; $path = zn_norm_path( $u ); if ( ! $path || $path === '/' ) continue; $scan[ $path ] = isset( $scan[ $path ] ) ? $scan[ $path ] + 1 : 1; } } update_option( 'zn_scan', $scan, false ); $offset += count( $ids ); if ( count( $ids ) === $batch ) { $busy = true; echo '

Scan ho raha hai... ' . (int) $offset . ' items check hue. Tab band na karein.

'; zn_mapper_form( 'scan', $offset, 'Agla batch', true ); } else { echo '

Scan mukammal. ' . count( $scan ) . ' alag broken URLs mile. Neeche review karein.

'; } } /* ---- 2) SAVE ---- */ if ( $act === 'save' ) { $map = get_option( 'zn_map', array() ); $paths = isset( $_POST['p'] ) ? (array) wp_unslash( $_POST['p'] ) : array(); $chs = isset( $_POST['m'] ) ? (array) wp_unslash( $_POST['m'] ) : array(); foreach ( $paths as $h => $path ) { $path = sanitize_text_field( $path ); $v = isset( $chs[ $h ] ) ? sanitize_text_field( $chs[ $h ] ) : 'skip'; if ( $v === 'remove' || preg_match( '/^id:\d+$/', $v ) ) $map[ $path ] = $v; else unset( $map[ $path ] ); } update_option( 'zn_map', $map, false ); echo '

Choices save ho gaye. Jo URL "naye page" par set hain unka purana link Google/visitors ke liye bhi ab naye page par redirect hoga.

'; } /* ---- 3) APPLY ---- */ if ( $act === 'apply' ) { $dry = ! empty( $_POST['dry'] ); $map = get_option( 'zn_map', array() ); $ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_type IN ('post','page') AND post_status IN ('publish','draft','private') ORDER BY ID ASC LIMIT %d OFFSET %d", $batch, $offset ) ); $re = 0; $rm = 0; $posts = 0; foreach ( $ids as $id ) { $old = $wpdb->get_var( $wpdb->prepare( "SELECT post_content FROM {$wpdb->posts} WHERE ID=%d", $id ) ); $new = preg_replace_callback( '#]*?href=(["\'])(.*?)\1[^>]*>(.*?)#is', function ( $m ) use ( $map, &$re, &$rm ) { $path = zn_norm_path( $m[2] ); if ( ! $path || ! isset( $map[ $path ] ) ) return $m[0]; $ch = $map[ $path ]; if ( $ch === 'remove' ) { $rm++; return $m[3]; } if ( strpos( $ch, 'id:' ) === 0 ) { $link = get_permalink( (int) substr( $ch, 3 ) ); if ( ! $link ) return $m[0]; $frag = ( ( $h = strpos( $m[2], '#' ) ) !== false ) ? substr( $m[2], $h ) : ''; $pos = strpos( $m[0], $m[2] ); $re++; return substr_replace( $m[0], $link . $frag, $pos, strlen( $m[2] ) ); } return $m[0]; }, $old ); if ( $new === null || $new === $old ) continue; $posts++; if ( ! $dry ) { if ( ! get_post_meta( $id, '_zn_backup_map', true ) ) add_post_meta( $id, '_zn_backup_map', wp_slash( $old ), true ); $wpdb->update( $wpdb->posts, array( 'post_content' => $new ), array( 'ID' => $id ) ); clean_post_cache( $id ); } } $offset += count( $ids ); echo '

' . ( $dry ? 'DRY RUN: ' : '' ) . (int) $offset . ' items check hue. Is batch mein ' . $posts . ' posts, ' . $re . ' links naye page par, ' . $rm . ' links hata diye' . ( $dry ? ' (kuch save nahi hua)' : '' ) . '.

'; if ( count( $ids ) === $batch ) { $busy = true; zn_mapper_form( 'apply', $offset, 'Agla batch', true, $dry ? '' : '' ); } else { echo '

Mukammal.

'; } } if ( $busy ) { echo ''; return; } /* ---- Buttons ---- */ echo '

Step 1:

'; zn_mapper_form( 'scan', 0, 'Scan karo (broken links dhoondo)' ); $scan = get_option( 'zn_scan', array() ); if ( ! $scan ) { echo ''; return; } arsort( $scan ); $map = get_option( 'zn_map', array() ); /* ---- Review ---- */ $pool = array(); foreach ( $wpdb->get_results( "SELECT ID, post_title, post_name, post_type FROM {$wpdb->posts} WHERE post_status='publish' AND post_type IN ('post','page')" ) as $r ) { $pool[] = array( 'id' => (int) $r->ID, 'title' => $r->post_title, 'type' => $r->post_type, 'tok' => zn_tokens( $r->post_title . ' ' . $r->post_name ) ); } echo '

Step 2: Review

Har purane URL ke saamne sahi page chunein. "Abhi chhod do" ka matlab link jaisa hai waisa rahega. Jo URL kisi page se match nahi karte unhe "Link hata do" par rakhein.

'; echo '
'; wp_nonce_field( 'zn_map' ); echo ''; foreach ( $scan as $path => $n ) { $h = md5( $path ); $slug = basename( $path, '.html' ); $tok = zn_tokens( $slug ); $isP = strpos( $path, '/p/' ) === 0; $numbered = (bool) preg_match( '/_\d+\.html$/', $path ); $c = array(); foreach ( $pool as $p ) { $s = zn_score( $tok, $p['tok'] ); if ( $isP && $p['type'] === 'page' ) $s += 0.05; if ( $s > 0.15 ) $c[] = array( 's' => $s, 'p' => $p ); } usort( $c, function ( $a, $b ) { return $b['s'] <=> $a['s']; } ); $c = array_slice( $c, 0, 4 ); if ( isset( $map[ $path ] ) ) { $sel = $map[ $path ]; } elseif ( $c && ! $numbered && $c[0]['s'] >= 0.6 && ( ! isset( $c[1] ) || $c[0]['s'] - $c[1]['s'] >= 0.1 ) ) { $sel = 'id:' . $c[0]['p']['id']; } else { $sel = 'skip'; } echo ''; } echo '
Purana URLKitni baarKya karna hai
' . esc_html( $path ) . ( $numbered ? '
numbered slug: asli post andaze se nahi milega' : '' ) . '
' . (int) $n . '

'; echo '

Step 3: Articles mein lagao

Pehle Dry run, phir asli.

'; zn_mapper_form( 'apply', 0, 'Dry run (sirf check)', false, '' ); zn_mapper_form( 'apply', 0, 'Asli apply karo' ); echo ''; }

Where there is a will there is a way story

This is a story with the moral lesson, where there’s a will there’s a way. The story gives us a good moral lesson. It is the story of pigeons, a hunter, and a mouse. The story is very interesting and a new one. You will enjoy the short story.

Where there is a will there is a way story for 1st year

Where there’s is a will there’s a way story

Determination and willpower will never let you go down even in critical circumstances. It is our will that we do miracles. The will turns impossible into possible. There are many stories of successful persons who came from the mouth of disasters and touched the skies. 

Here is a story of some pigeons who were struck in the delirium of death and created a way out of their will.

Once there lived a mouse in a forest. It used to find eatables in nearby fields. Some pigeons also used to land on those fields to find feed. The mouse and the pigeons became friends.

One day the pigeons were flying over a field. They saw some grains on the land below. They decided to land there to pick the grains. There was an old and wise pigeon among them. He said, “It seems that these grains have been spread by a bird catcher. I think we should not take the risk.” 

The pigeons were hungry. They would not listen to the advice of the wise pigeon. They all landed there and started picking the grains.

Suddenly they were caught in a net. They were now helpless. They began to flutter but all in vain. They saw the bird catcher coming towards them at a distance. The wise pigeon was also among them. He said, “Listen carefully! We can do nothing except do one thing. Let us all fly together with our full force. It may pull the net out and we may fly with this net.” 

The pigeons liked the idea. They all flew together with full force. Due to forceful pull, the net was pulled away and the birds flew away.

The bird-catcher was taken aback by the act of the birds but could do nothing. They landed near the hole of their friend mouse. It came out and cut the ropes with its sharp teeth. Soon, all the birds were free. They thanked their friend mouse.

Moral lesson: Where there is a will there is a way

Read other Stories:

1. A Rolling Stone gathers no Moss English Story

2. Tit For Tat Moral Lesson Short Story

Leave a Comment