web-dev-qa-db-ja.com

Functions.phpを使ってパーマリンク構造を設定する方法

私はWordpressネットワークを設定していて、すべての新しいサイトが同じパーマリンク構造を持つことを望んでいました(すなわち "/%year%/%monthnum%/%postname%/")。私はこれがfunctions.phpのフックやハックを介して行うことが可能であるかどうか、その構造を選択するためにユーザーに頼る必要なしに疑問に思います。

9
Tomas Buteler

グローバル$wp_rewriteオブジェクトのset_permalink_structure()メソッドを呼び出すことで、パーマリンク構造を設定できます。

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

エラーが発生した場合のためのPHP <5.3バージョンのコードです。

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

前回の回答がうまくいきません。私は純粋な解決策を得ました。使用できますこのコードを使用してください。それは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
Saiful Islam