php - 自定义帖子类型

标签 php mysql wordpress

我正在尝试构建一个应用程序,该应用程序从用户那里获取 2 条输入并将其保存到数据库中。

These are the two fields that will submit input to be saved to the database

我尝试过自定义帖子类型,但它的概念对我来说很陌生且令人困惑 - 我不知道我是否应该使用预先存在的字段(标题、内容)或创建字段以将输入存储在数据库中。

这是我的代码:

// Register Custom Post Type
function int_init() {

    $labels = array(
        'name'                => 'Stories',
        'singular_name'       => 'Story',
        'menu_name'           => 'Story',
        'parent_item_colon'   => 'Parent Stories:',
        'all_items'           => 'All Stories',
        'view_item'           => 'View Story',
        'add_new_item'        => 'Add new Story',
        'add_new'             => 'New Story',
        'edit_item'           => 'Edit Story',
        'update_item'         => 'Update Story',
        'search_items'        => 'Search Story',
        'not_found'           => 'No story found',
        'not_found_in_trash'  => 'No story found in Trash',
    );
    $args = array(
        'label'               => 'int',
        'description'         => 'INT information pages',
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'menu_icon'           => '',
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
    );
    register_post_type( 'int', $args );

}

// Hook into the 'init' action
add_action( 'init', 'int_init', 0 );

所有这些代码对我来说都是在后端显示标题和内容字段。我应该只使用标题和内容字段,还是应该创建新字段?我该怎么做?

编辑:每个用户的内容都是独一无二的,因为每个用户每次提交时都需要使用简码创建的表单输入两段字母数字数据。我知道简码是如何工作的,并且在过去使用过它们。

输入的一对数据项将保存到数据库中,需要检索并张贴在网站的公共(public)端。这对数据项将被检索并显示在每个数据对的一页上:

我想 吃一个花生酱三明治 然后 喝一杯牛奶。提交的数据显示为粗体。数据的检索和格式化将使用短代码完成。我不知道如何创建自定义字段来完成这项工作。我了解自定义帖子类型在基本层面上的工作原理,但我不了解如何使用自定义帖子类型来使我的项目正常运行。

数据由未登录网站的用户在网站的公共(public)端提交。

回顾一下我的问题,我不知道如何存储这对数据。我是使用预先存在的标题和内容字段还是创建不同的内容?

最佳答案

自定义帖子类型就是自定义帖子类型。 Wordpress 使用常规的内置帖子显示在网站的博客部分。您可以在后台看到的“帖子”按钮中创建它们。所以你所做的是添加一个新的自定义帖子类型。这将创建一个带有标签“int”的新按钮。但输入类型将与常规帖子类型相同 - 您会看到 tinyMCE 框、应用类别/标签等。

我认为除了自定义帖子类型之外,您需要的是图像上表达的自定义字段。处理这些问题的一种简单方便的方法是使用此插件:http://www.advancedcustomfields.com/

或者,如果您真的不需要自定义帖子类型 - 这可能会使您的循环稍微困难一些,因为您必须过滤查询的内容以便每次都能获得您真正想要的内容 - 也许您可以这样做仅在自定义字段上。

如果您只需要用户有几个输入框,而不需要 tinyMCE 等,我会说您将需要自定义类型和自定义字段。

编辑:这里有关于自定义帖子类型的更多信息:Post Types « WordPress Codex

和此处的自定义字段:Custom fields « WordPress Codex

编辑:如果用户每次发布内容时都会输入这 2 个“输入”,也就是说,如果这 2 个片段将存在于每个帖子的基础上......我想你肯定是寻找自定义字段提供的功能。忘记自定义帖子类型。只需创建自定义字段并像这样在单个帖子循环中通过主题检索它们:

$themeta = get_post_meta($post->ID, $keyOfTheValueYouWantToRetrieve, TRUE);
if($themeta != '') {
    // show that info as desired
    echo "I want to" . $themeta;
}

我仍然不确定这是否是你的意思:)

关于php - 自定义帖子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265801/

相关文章:

php - 什么更好?国家、州和城市是否在数据库中?

php - 需要UTF-8 php文件

html - Wordpress CSS 无法正确显示导航

php - WordPress 管理面板缺少样式和脚本

php - 如何防止 PHP 中的 SQL 注入(inject)?

PHP 类不存储引用

c# - 如何为每个 MySQL 获取的变量创建一个包含内容的面板

php - AS 或不 AS,查询

MySql求和查询

php - WordPress 错误 - 抱歉,您无权访问此页面。将网站从一个域迁移到另一个域后