पेजिंग में "पेज" स्लग को बदलें


13

सरल प्रश्न। जब पेजिंग सक्रिय होता है, तो URL बदल जाता है "site.com/page/2"। मेरी साइट के लिए, यह होना चाहिए "site.com/paggetto/2"

मैं उस नियम को कैसे बदल सकता हूं? मैं भी बदलना चाहता हूं "author"और अन्य चर।

जवाबों:


17

जर्मन में कुछ साइटों के लिए मैं (जर्मन शब्द के लिए ) अनुवाद pageकरने के लिए निम्नलिखित प्लगइन का उपयोग करता हूं :seitepage

<?php # -*- coding: utf-8 -*-
/**
 * Plugin Name: T5 Page to Seite
 * Description: Ersetzt <code>/page/</code> durch <code>/seite/</code>.
 * Author:      Fuxia Scholz
 * License:     MIT
 * License URI: http://www.opensource.org/licenses/mit-license.php
 */

if ( ! function_exists( 't5_page_to_seite' ) )
{
    register_activation_hook(   __FILE__ , 't5_flush_rewrite_on_init' );
    register_deactivation_hook( __FILE__ , 't5_flush_rewrite_on_init' );
    add_action( 'init', 't5_page_to_seite' );

    function t5_page_to_seite()
    {
        $GLOBALS['wp_rewrite']->pagination_base = 'seite';
    }

    function t5_flush_rewrite_on_init()
    {
        add_action( 'init', 'flush_rewrite_rules', 11 );
    }
}

ध्यान दें कि आप केवल डी / सक्रियण पर फिर से लिखना नियमों को फ्लश करते हैं । .htaccessनए URL में पुराने URL को पुनर्निर्देशित करने के लिए आपको एक अलग पुनर्लेखन नियम की आवश्यकता होगी :

RedirectMatch Permanent ^/(.*)/page/(.*) /$1/seite/$2

1
$ GLOBALS ['wp_rewrite'] -> पृष्ठांकन_बेस = 'seite' और $ wp_rewrite-> search_base = 'buscar' में क्या अंतर है; ?
डार्कगॉस्टहंटर 21

1
के बीच सूक्ष्म और अचूक अंतर हैंglobal $var; और $GLOBALS['var']। इस मामले में कोई फर्क नहीं पड़ता, बस ध्यान रखें कि बाद वाला रूप अधिक विश्वसनीय और पढ़ने / समझने में आसान है।
FUXIA

18

पता लगाया:

function re_rewrite_rules() {
    global $wp_rewrite;
    // $wp_rewrite->author_base = $author_slug;
//  print_r($wp_rewrite);
    $wp_rewrite->author_base        = 'autor';
    $wp_rewrite->search_base        = 'buscar';
    $wp_rewrite->comments_base      = 'comentarios';
    $wp_rewrite->pagination_base    = 'pagina';
    $wp_rewrite->flush_rules();
}
add_action('init', 're_rewrite_rules');

कम से कम, वह काम करेगा।


11
सिर्फ एक छोटा सा नोटिस, क्योंकि $wp_rewrite->flush_rules();प्रदर्शन के मामले में यह कितना महंगा है, आपको इसे कभी भी उपयोग नहीं करना चाहिए init, एक बेहतर विकल्प सिर्फ पर्मलिंक विकल्प पृष्ठ पर जाना है, और कुछ बार परिवर्तनों को सहेजना है, जो आपके लिए उन्हें बहा देगा। ।
आंद्रे ए

1

यह फ़ंक्शन आपके अनुवाद पैकेज के साथ सीधे काम करेगा, आपके नए आधार को प्रारूपित करेगा और आपके ब्लॉग के खराब प्रदर्शन से बचने के लिए फ़्लश_उपकरण_यात्रा फ़ंक्शन को एक से अधिक बार चलाने से रोकेगा।

function my_change_rewrite_base() {
    global $wp_rewrite;
    $bases = array(
        'author' => __('Author'), 
        'search' => __('Search'), 
        'comments' => __('Comments)', 
        'pagination' => __('Page')
    );

    foreach ($bases AS $key => $base) {
        $wp_rewrite->{$key} = remove_accents(mb_strtolower($base));
    }

    if ( ! get_option('my_change_rewrite_base_flushed', false) ) {
        flush_rewrite_rules();
        update_option( 'my_change_rewrite_base_flushed', time());
    }
}
add_action('init', 'my_change_rewrite_base');

0

निम्नलिखित ने मेरे लिए काम किया:

function nw_strana() {
    $GLOBALS['wp_rewrite']->pagination_base = 'strana';
}

add_action( 'init', 'nw_strana' );

function nw_rewrite( $rules ) {
    $new_rules = array(
        'obchod/strana/([0-9]{1,})/?$' => 'index.php?post_type=product&paged=$matches[1]',
    );

    $rules = array_merge( $new_rules, $rules );

    return $rules;
}

add_filter( 'rewrite_rules_array', 'nw_rewrite' );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.