【问题标题】:is it possible to create a CPT on the fly when a new top level menu is added in wordpress?在 wordpress 中添加新的顶级菜单时,是否可以即时创建 CPT?
【发布时间】:2011-11-25 09:49:54
【问题描述】:

我已经到处寻找解决方案,我自己编写代码还不够好,但也许对 PHP 有更多了解的人可以帮助我。

当客户添加新的顶级菜单链接时,我基本上需要在管理面板中创建自定义帖子类型。这可能吗?

我只有基本代码

function create_casestudies() {

$labels = array (
    'name' => __('Case Studies'),
    'singular_label' => __('Case Study'),
    'add_new' => __('Add New Case Study'),
    'add_new_item' => __('Add New Case Study'), 
    'edit' => __( 'Edit' ),
    'edit_item' => __( 'Edit Case Study' ),
    'new_item' => __( 'New Case Study' ),
    'view' => __( 'View Inspiration' ),
    'view_item' => __( 'View Case Study' ),
    'search_items' => __( 'Search Case Studies' ),
    'not_found' => __( 'No Case Studies found' ),
    'not_found_in_trash' => __( 'No Case Studies found in Trash' ),
    'parent' => __( 'Parent Case Studies' ),    
);

register_post_type(
    'casestudies',
    array( 
        'labels' => $labels,
        'public' => true,
        'show_ui' => true, 
        'capability_type' => 'post', 
        'menu_position' => 6,  
        'rewrite' => array('slug' => 'casestudy'),
        'supports' => array('title', 'editor', 'thumbnail')

    )
);
}   add_action('init', 'create_casestudies');

我假设这需要编辑以查看是否存在顶级导航,如果存在,则使用这些参数创建自定义帖子类型

【问题讨论】:

  • 到目前为止你尝试过什么?请发布对您不起作用的代码。也可以使用搜索:stackoverflow.com/search?q=php+wordpress+custom-post-typestackoverflow.com/questions/tagged/…
  • 我已经在管理面板中设置了自定义帖子类型,这些直接与主题中的部分或页面相关,但由于客户希望菜单动态,我需要自定义帖子类型添加新的顶级菜单时创建。我一直在看 register_post_type()
  • 您应该在这里询问有关代码的问题,因此请添加您的代码。添加新的顶级菜单时,您的代码是否已被调用?
  • 请将其添加到您的问题中,而不是作为评论。谢谢!添加菜单时如何调用它? (你谈到了这个,所以只是想知道那个基本部分在哪里)

标签: php wordpress custom-post-type


【解决方案1】:

您是否需要在用户添加顶级菜单链接时创建自定义帖子类型?还是只有一种自定义帖子类型?

如果它的 CPTS 数量未定义,也许您最好将它们存储在 plugin_option 或主题选项中,并且当用户添加另一个顶级菜单项时,您会向您的 BD 添加一个新项目。然后,您的 init 函数将循环此数组以动态创建 CPT(并保持创建它们,因为它在 init 上运行)。

如果它只有一个 CPT,那就更简单了,只需添加一个选项来存储它是否应该运行您的函数!

希望这会有所帮助!

【讨论】:

  • 这有助于我理解如何处理代码,谢谢!仍然不完全确定从哪里开始。是的,当用户添加顶级菜单时,我需要创建一个 CPT。所以本质上,如果用户添加了一个名为“example”的顶级链接,那么 CPT 将被称为“example”
  • 我不是 100% 确定,但也许你可以使用codex.wordpress.org/Plugin_API/Action_Reference/…,因为菜单编辑会触发“添加菜单项”操作。当您执行此特定操作时,您只需要弄清楚如何添加/编辑 plugin_option :)
  • 好的,所以我不完全确定,但是我们可以使用 add_action 调用一个函数来检查 is_menu_nav 是否存在,如果存在,获取当前的单个链接项并添加自定义帖子给他们打字???这对我来说听起来很牵强..
猜你喜欢
  • 2012-10-26
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多