私はWordpressネットワークを設定していて、すべての新しいサイトが同じパーマリンク構造を持つことを望んでいました(すなわち "/%year%/%monthnum%/%postname%/")。私はこれがfunctions.phpのフックやハックを介して行うことが可能であるかどうか、その構造を選択するためにユーザーに頼る必要なしに疑問に思います。
グローバル$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' );
前回の回答がうまくいきません。私は純粋な解決策を得ました。使用できますこのコードを使用してください。それは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' );