首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建自定义post类型(使用pods),然后将现有页面转换为自定义post类型?

创建自定义post类型(使用pods),然后将现有页面转换为自定义post类型?
EN

WordPress Development用户
提问于 2018-06-03 05:34:40
回答 1查看 307关注 0票数 1

以下是我想要达到的目标,我相信这是可能的。

我的WordPress安装中有3,000多页。

从一开始,我就应该把这些页面分成“自定义页面”,但是当我开始我的博客时,我并不知道自定义页面的能力或威力。

所以,下面是我要做的:将某些页面从父URL移动到自定义页面.

例如,我当前的标准wordpress结构包括具有父级“持有”URL的“水果”和“蔬菜”的页面(见下文)

代码语言:javascript
复制
domain.com/fruit/page-1
domain.com/fruit/page-2
domain.com/fruit/page-3
domain.com/fruit/page-4

domain.com/vegetables/page-1
domain.com/vegetables/page-2
domain.com/vegetables/page-3
domain.com/vegetables/page-4

我想为这两个“父目录”创建自定义页面类型(使用pods插件),在我上面的示例中,这两个目录都是“水果”和“蔬菜”。

所以,我的计划是..。

  1. 使用荚创建自定义页类型
  2. 将旧页转移到新的自定义页面模板。

我该怎么做呢,或者说“最好的”方法是什么?

谢谢!

EN

回答 1

WordPress Development用户

发布于 2018-06-03 06:47:58

有很多方法你可以做到这一点,很难说哪一个将是最好的。

第一部分是注册你的CPTs -我想这很容易。假设您已经注册了CPT,这些CPT被称为fruitvegetable

所以现在唯一要做的就是把现有的页面转换成CPT。

我们需要What吗?

  • 父页的ID,
  • 能够运行SQL代码。

做这个的How?

只需运行以下查询:

代码语言:javascript
复制
UPDATE prefix_posts 
SET post_parent = 0, post_type = 'vegetable'
WHERE post_type = 'page' AND post_parent = 

PHP版本,因为以这种方式运行它可能要容易一些:

代码语言:javascript
复制
function convert_children_of_page_to_cpt( $page_slug, $cpt_slug ) {
    global $wpdb;

    $page = get_page_by_path( $page_slug );
    if ( $page ) {
        $wpdb->update(
            $wpdb->posts,
            array( 'post_parent' => 0, 'post_type' => $cpt_slug ),
            array( 'post_parent' => $page->ID, 'post_type' => 'page' )
        );
    }
}

免责声明:当然,在执行这些查询之前,您应该备份数据库;)

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/305168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档