感謝這篇文章,我有這樣的php代碼,可以在我的自定義主題激活時自動生成一些頁面(效果很好),但是我希望也能夠為每個頁面自定義創建的slug,例如對于Tool Brands頁面,我希望slug只是brands,這很重要,有幾個原因:1)為了方便客戶使用www.domain.com/brands和2)我的頁面標題是根據頁面名稱自動生成的,所以我想保留Tool Brands作為頁面名稱,但在這種情況下,它也將創建一個我不想要的lugtool-brands。
感謝您的幫助--由于我幾乎不懂PHP,所以能把它清楚地寫出來將是一個很大的幫助。
代碼如下,也在PasteBin
<?php
declare(strict_types=1)。
function your_theme_create_page($page_title, $page_content)
{
$page_obj = get_page_by_title($page_title, 'OBJECT'/span>, 'page') 。
if ($page_obj) {
return false;
exit()。
}
$page_args = array(
'post_type' => 'page',
'post_status' => 'publish',
'post_title' => ucwords($page_title) 。
'post_name' => strtolower(trim($page_title)) 。
'post_content' => $page_content,
);
$page_id = wp_insert_post($page_args)。
return $page_id;
}
//第二節代碼
add_action('after_switch_theme', 'my_custom_pages_on_theme_activation') 。
function my_custom_pages_on_theme_activation()
{
$pages_array = array(
'Home' => '',
'News' => '',
'Products' => '',
'Policy' => '',
'服務' => ''。
'工具品牌' => '',
);
foreach ($pages_array as $page_title => $page_content ) {
$current_page = your_theme_create_page($page_title, $page_content)。
if (false !=$current_page) {
add_action('admin_notices', function () use (>$page_title>>) {
? >
< div class="notice 通知-成功 是-可接受">。
<p><?php echo "完成! {$page_title}已經創建"; ?></p>
</div>
<?php
});
} else {
add_action('admin_notices', function () use ($page_title) {
?">
<div class="notice-warning is-dismissible">
<p><?php echo "{$page_title}沒有創建! 檢查它是否已經存在"; ?></p>
</div>
<?php
});
}
}
$blog_page = get_page_by_title('news', 'OBJECT', 'page') 。
如果($blog_page) {
update_option('page_for_posts', $blog_page->ID);
}
$front_home_page = get_page_by_title('home', 'OBJECT', 'page') 。
如果($front_home_page) {
update_option('page_on_front', $front_home_page->ID) 。
update_option('show_on_front', 'page');
}
uj5u.com熱心網友回復:
你需要在your_theme_create_page()函式中增加一個帶有slug的變數。 并將陣列格式改為多維
declare(strict_types=1)。
function your_theme_create_page($page_title, $page_content, $new_post_name)
{
$page_obj = get_page_by_title($page_title, 'OBJECT'/span>, 'page') 。
if ($page_obj) {
return false;
exit()。
}
$page_args = array(
'post_type' => 'page',
'post_status' => 'publish',
'post_title' => ucwords($page_title) 。
'post_name' => $new_post_name,
'post_content' => $page_content,
);
$page_id = wp_insert_post($page_args)。
return $page_id;
}
//第二節代碼
add_action('after_switch_theme', 'my_custom_pages_on_theme_activation') 。
function my_custom_pages_on_theme_activation()
{
$pages_array = array(
"1"/span> => array(
"post_title" => 'Home title here',
"post_content" => 'Home content here',
"post_name" => 'home_slug_here',
),
"2"/span> => array(
"post_title" => 'News title here',
"post_content" => 'News content here',
"post_name" => 'news_slug_here',
),
"3"/span> => array(
"post_title" => 'title here 3',
"post_content" => 'content here 3',
"post_name" => 'slug_here3',
),
);
foreach ($pages_array as $page_array) {
$page_title = $page_array['post_title'/span>]。
$page_content = $page_array['post_content'] 。
$new_post_name = $page_array['post_name'] 。
$current_page = your_theme_create_page($page_title, $page_content, $new_post_name)。
if (false != $current_page) {
add_action('admin_notices', function () use (>$page_title>>) {
< div class="notice 通知-成功 是-可接受">。
<p><?php echo "完成! {$page_title}已經創建"; ?></p>
</div>
<?php
});
} else {
add_action('admin_notices', function () use ($page_title) {
?">
<div class="notice-warning is-dismissible">
<p><?php echo "{$page_title}沒有創建! 檢查它是否已經存在"; ?></p>
</div>
<?php
});
}
}
$blog_page = get_page_by_title('news', 'OBJECT', 'page') 。
如果($blog_page) {
update_option('page_for_posts', $blog_page->ID);
}
$front_home_page = get_page_by_title('home', 'OBJECT', 'page') 。
如果($front_home_page) {
update_option('page_on_front', $front_home_page->ID) 。
update_option('show_on_front', 'page');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333702.html
標籤:
上一篇:如何用法語顯示十位數的小數部分
下一篇:MVI模式下的多狀態模型
