WP 子域多站点:如何更改新站点的默认永久链接结构?
WP sub-domains multisite: How to change default permalink structure for new sites?
我有一个 WP 多站点设置,所有站点都有 子域 。
我希望每个新站点的URL结构是:
subdomain.maindomain.com/post-姓名
例如:subdomain.maindomain.com/hi-world
我已经为此苦苦挣扎了一天半,希望这里有人能帮助我。我阅读了很多信息,并尝试编辑默认主题的 functions.php 并在 mu-plugins 中添加自定义插件.但是我还没有成功
所以永久链接的常规设置现在是:/%year%/%monthnum%/%day%/%postname%/
但我想要:/%postname%/
好的,我尝试了很多不同的方法。 This可能是最接近成功的(?):
// set permalink
function set_permalink(){
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%year%/%monthnum%/%postname%/');
}
add_action('init', 'set_permalink');
在 functions.php 中,我有这个可以自动将标准页面添加到新博客/网站:
add_action('wpmu_new_blog', 'wpb_create_my_pages', 10, 2);
// create new page
$page_id = wp_insert_post(array(
'post_title' => 'My title',
'post_name' => 'The name',
'post_content' => 'The content here',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 10,
'comment_status' => 'closed',
'ping_status' => 'closed',
));
所以在此我尝试了 'set_permalink' 功能,但它不起作用。
我也试过制作自己的 mu-plugins 插件,但都没有成功。
当我 Google 我一直在寻找需要新博客所有者登录并保存永久链接结构的解决方案,但我只是希望所有新博客/网站的永久链接结构都相同。
如何设置新站点的默认永久链接结构?
感谢任何可以帮助我解决这个问题的指示或代码!
仅供将来用答案验证此问题,并供其他人参考:
我在 /wp-content/ 中创建了一个名为“mu-plugins”的新子目录,所以我有 /wp-content/mu-plugins/
在“mu-plugins”中我创建了一个名为“rewritepermalinks.php”的文件
我在其中输入:
<?php
/**
* Plugin Name: Permalin Structure Edit
* Description: Edit the permalinks structure on new multisite sites
* Author:
* License: GNU General Public License v3 or later
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*/
add_action( 'wpmu_new_blog', function( $blog_id ){
switch_to_blog( $blog_id );
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/');
$wp_rewrite->flush_rules();
restore_current_blog();
}, 10 );
?>
这对我在 Wordpress 5.8.3 和启用多站点的情况下有效。找到了解决方案 here 并且在问题的评论中也提到了。我以前试过一次,但一定是打错了,因为第一次没有成功。
我曾尝试改用 'wp_insert_site',但没有成功。评论 here about wp_insert_site 中有一个提示可能对实现此功能有价值。
现在上面的代码对我来说是一个 MU 插件。
我有一个 WP 多站点设置,所有站点都有 子域 。
我希望每个新站点的URL结构是:
subdomain.maindomain.com/post-姓名
例如:subdomain.maindomain.com/hi-world
我已经为此苦苦挣扎了一天半,希望这里有人能帮助我。我阅读了很多信息,并尝试编辑默认主题的 functions.php 并在 mu-plugins 中添加自定义插件.但是我还没有成功
所以永久链接的常规设置现在是:/%year%/%monthnum%/%day%/%postname%/
但我想要:/%postname%/
好的,我尝试了很多不同的方法。 This可能是最接近成功的(?):
// set permalink
function set_permalink(){
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%year%/%monthnum%/%postname%/');
}
add_action('init', 'set_permalink');
在 functions.php 中,我有这个可以自动将标准页面添加到新博客/网站:
add_action('wpmu_new_blog', 'wpb_create_my_pages', 10, 2);
// create new page
$page_id = wp_insert_post(array(
'post_title' => 'My title',
'post_name' => 'The name',
'post_content' => 'The content here',
'post_status' => 'publish',
'post_author' => $user_id, // or "1" (super-admin?)
'post_type' => 'page',
'menu_order' => 10,
'comment_status' => 'closed',
'ping_status' => 'closed',
));
所以在此我尝试了 'set_permalink' 功能,但它不起作用。
我也试过制作自己的 mu-plugins 插件,但都没有成功。
当我 Google 我一直在寻找需要新博客所有者登录并保存永久链接结构的解决方案,但我只是希望所有新博客/网站的永久链接结构都相同。
如何设置新站点的默认永久链接结构?
感谢任何可以帮助我解决这个问题的指示或代码!
仅供将来用答案验证此问题,并供其他人参考:
我在 /wp-content/ 中创建了一个名为“mu-plugins”的新子目录,所以我有 /wp-content/mu-plugins/
在“mu-plugins”中我创建了一个名为“rewritepermalinks.php”的文件
我在其中输入:
<?php
/**
* Plugin Name: Permalin Structure Edit
* Description: Edit the permalinks structure on new multisite sites
* Author:
* License: GNU General Public License v3 or later
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*/
add_action( 'wpmu_new_blog', function( $blog_id ){
switch_to_blog( $blog_id );
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/');
$wp_rewrite->flush_rules();
restore_current_blog();
}, 10 );
?>
这对我在 Wordpress 5.8.3 和启用多站点的情况下有效。找到了解决方案 here 并且在问题的评论中也提到了。我以前试过一次,但一定是打错了,因为第一次没有成功。
我曾尝试改用 'wp_insert_site',但没有成功。评论 here about wp_insert_site 中有一个提示可能对实现此功能有价值。
现在上面的代码对我来说是一个 MU 插件。