Как установить структуру постоянных ссылок с помощью functions.php


Я настраиваю сеть Wordpress и хотел, чтобы все новые сайты имели одинаковую структуру постоянных ссылок (т.Е. "/%год%/%число месяцев%/%имя сообщения%/"). Мне интересно, возможно ли это сделать с помощью крючков или взломов в functions.php, без необходимости полагаться на пользователей в выборе этой структуры.

Author: Tomas Buteler, 2011-10-15

3 answers

Вы можете задать структуру постоянных ссылок, вызвав метод set_permalink_structure() глобального объекта $wp_rewrite.

add_action( 'init', function() {
    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%postname%/' );
} );

Вот версия кода PHP

function reset_permalinks() {
    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%postname%/' );
}
add_action( 'init', 'reset_permalinks' );
 15
Author: soulseekah, 2011-10-17 02:02:57

Предыдущий ответ не работает. Я получил чистое решение. Может использовать Используйте этот код. Это сработает на 100%. Спасибо

/**
 * Rewrite set up, when theme activate i mean
 */
if (isset($_GET['activated']) && is_admin()) {
    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure('/%postname%/');
    $wp_rewrite->flush_rules();
}

/**
* Redirect to Permalink setting Page.
* Otherwise Redirect rule will not work Properly.
*/
function redirect_to_permalink() {

    wp_redirect('options-permalink.php');
}
add_action( 'after_switch_theme', 'redirect_to_permalink' );
 2
Author: Saiful Islam, 2017-08-31 06:01:49
function setPermaLink(){
    $ps = '/%category%/%postname%/';
    $permalink_structure = sanitize_option( 'permalink_structure', $ps);
    $blog_prefix = '/blog';
    $prefix = '/index.php';

    if ( ! empty( $permalink_structure ) ) {
        $permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) );
        if ( $prefix && $blog_prefix ) {
            $permalink_structure = $prefix . preg_replace( '#^/?index\.php#', '', $permalink_structure );
        } else {
            $permalink_structure = $blog_prefix . $permalink_structure;
        }
    }

    $wp_rewrite->set_permalink_structure( $permalink_structure );
    flush_rewrite_rules();
}

setPermaLink();
 0
Author: Ricardo Boavida, 2019-09-12 13:47:01