因此,我有一个自定义的WordPress主题,我正在开发和安装后,它在一个新的WordPress设置,我想一个菜单自动生成3页,即:
*产品
*政策
*服务
这是我的主题将严重依赖。
我将已经有3个模板页面为这些自定义主题文件,即:
*页面-产品.php
*页面-策略.php
*网页服务.php
因此,当主题安装这些是自动创建的,所以这是一个没有头脑的客户端。
我知道小枝,但很少PHP,如果有人能写出来,所以我可以把它放到我的functions.php
文件。
我会非常非常感激,非常感谢!!
编辑
补充问题
此外,我将有一个主页和新闻页面自动创建以及。是否有一个快速的代码来自动设置这些作为默认主页和默认帖子页面?或者是比这更复杂?
1条答案
按热度按时间busg9geu1#
您可以使用
after_switch_theme
操作钩子和wp_insert_post
函数来实现您所寻找的内容。after_switch_theme
Docswp_insert_post
Docs1.为了生成这三个页面,首先,我们创建一个包含
wp_insert_post
函数的函数。我们的自定义函数将接受两个参数,首先检查您试图创建的页面是否存在。如果页面存在,它将返回false
,否则,它将创建页面并返回该页面的id。下面的代码转到活动主题的
functions.php
文件。1.现在,在
after_switch_theme
操作钩子上,我们运行另一个自定义函数。这次我们将创建一个关联数组来保存page titles
和page contents
。然后,我们使用foreach
循环将该数组提供给前面创建的函数。下面的代码还转到活动主题的
functions.php
。请注意,我使用
admin_notices
操作钩子为用户提供了可视消息。如果成功生成这些页面,则用户将看到以下消息:
另一方面,如果这些页未生成或已存在,则用户将看到以下消息:
现在我们已经创建了我们的页面,你可以在管理屏幕上的页面菜单上看到它们:
下面是页面内容示例:
现在,您可以更进一步,创建更复杂的模板并将它们提供给同配数组。
例如,你有
page-products.php
,page-policy.php
和page-services.php
文件在一个名为inc
的文件夹中,那么你的文件夹结构应该是这样的:那么你的关联数组应该是这样的:
如果你有任何问题请告诉我。
对补充问题的答复
是的,这样做是可行的。Wordpress在
page_for_posts
选项下跟踪blog posts page
。它还在page_on_front
和show_on_front
选项下存储front page
的信息。所以要将您的页面分配到blog
和front
页面,您需要更新这些选项。因此,当在
after_switch_theme
操作挂钩中触发自定义函数时,在foreach
循环之后,可以添加以下代码来分配页面:get_page_by_title
Docs因此,
after_switch_theme
action钩子的整个自定义函数将如下所示: