当前位置: 首页 > 知识库问答 >
问题:

Wordpress自定义帖子,如何在列表中显示自定义字段

夏侯承恩
2023-03-14

我是新来的wordpress, im创建一个自定义职位与字段的custom_meta_box(位置,着装)

所以在我的自定义帖子列表中,我想查看我在custom_meta_box上创造的价值。

这是我目前的代码:


    /*
    Plugin Name: My Own Custom Post
    Plugin URI: http://www.mywebsite.com/firstPlugin/
    Description: My Sample Description
    Author: Monski
    Version: 1.0
    Author URI: http://www.mywebsite.com/
    */


    // Registers the new post type and taxonomy
    function wpt_event_posttype() {
        register_post_type( 'events',
            array(
                'labels' => array(
                    'name' => __( 'Events' ),
                    'singular_name' => __( 'Event' ),
                    'add_new' => __( 'Add New Event' ),
                    'add_new_item' => __( 'Add New Event' ),
                    'edit_item' => __( 'Edit Event' ),
                    'new_item' => __( 'Add New Event' ),
                    'view_item' => __( 'View Event' ),
                    'search_items' => __( 'Search Event' ),
                    'not_found' => __( 'No events found' ),
                    'not_found_in_trash' => __( 'No events found in trash' )
                ),
                'public' => true,
                'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ),
                'capability_type' => 'post',
                'rewrite' => array("slug" => "events"), // Permalinks format
                'menu_position' => 5,
                'register_meta_box_cb' => 'add_events_metaboxes'
            )
        );
    }
    add_action( 'init', 'wpt_event_posttype' );

    function add_events_metaboxes() {
       // add_meta_box('wpt_events_date', 'Event Date', 'wpt_events_date', 'events', 'side', 'default');
        add_meta_box('wpt_events_location', 'Event Location', 'wpt_events_location', 'events', 'normal', 'high');
    }

    add_action( 'add_meta_boxes', 'add_events_metaboxes' );

    function wpt_events_location() {
        global $post;
        // Noncename needed to verify where the data originated
        echo '';
        // Get the location data if its already been entered
            $location = get_post_meta($post->ID, '_location', true);
            $dresscode = get_post_meta($post->ID, '_dresscode', true);
        // Echo out the field
            echo '

Enter the location:

人们应该怎么穿?

共有3个答案

仇经武
2023-03-14

我建议你使用下面的插件。使用ACF,您可以为自定义帖子类型创建自定义字段。

https://wordpress.org/plugins/advanced-custom-fields/

董胡媚
2023-03-14

用那个代码更新你的代码,它对我有效。我更喜欢使用ACF(高级自定义字段),但学习如何使用metabox是一件好事。使用繁重的代码对您的知识有好处

add_action('init','wpt_event_posttype');
add_action('save_post','save_event_data');


function add_events_metaboxes(){
    add_meta_box('events',esc_html__('Info'), 'events_callback', 'events', 'normal', 'default', null);
}


//Events Callback function Meta_Box
function events_callback($post){
    wp_nonce_field('save_event_data','event_nonce');

    $location = get_post_meta($post->ID,'_event_location_key',true);
    echo '<label for="event_location_field" style="display:block">Location</label></br>';
    echo '<input type="text" id="event_location_field" name="event_location_field" style="width:400px" value="'. esc_attr__($location).'"/></br>';

    $dresscode = get_post_meta($post->ID,'_event_dresscode_key',true);
    echo '<label for="event_dresscode_field" style="display:block">Dresscode</label></br>';
    echo '<input type="text" id="event_dresscode_field" name="event_dresscode_field" style="width:400px" value=" '. esc_attr__($dresscode). '" /></br>';

}
function save_event_data($post_id){
    if (!isset($_POST['event_nonce'])
        || ! wp_verify_nonce($_POST['event_nonce'],'save_event_data')
        || ! isset($_POST['event_location_field'])
        || ! isset($_POST['event_dresscode_field'])){
        return;
    }
    $event_location = sanitize_text_field($_POST['event_location_field']);
    update_post_meta($post_id,'_event_location_key',$event_location);

    $event_dresscode = sanitize_text_field($_POST['event_dresscode_field']);
    update_post_meta($post_id,'_event_dresscode_key',$event_dresscode);
}

对于html,请使用以下代码

<?php 
     $location = get_post_meta(get_the_ID(),'_event_location_key') ; 
     $dresscode = get_post_meta(get_the_ID(),'_event_dresscode_key');
?>

echo $location[0];
echo $dresscode[0];

陈浩
2023-03-14

您想使用get_post_meta函数。这将提供值,并允许您在页面/帖子模板中显示它。

希望本文也能帮助您了解整个过程

 类似资料:
  • 我创建了一个自定义的帖子类型(书),然后为这个特定的帖子类型创建了一个自定义分类法(book_cat)。它工作正常,但如果我单击仪表板中的所有书籍页面,则没有列显示已将书籍分配给哪些类别(book_cat)(如果有)。我需要点击每本书编辑并看到那里。 注册新职位类型功能是: 分类法是:

  • 我正在我的Wordpress公文包网站上工作,并为我的公文包部分创建了一个自定义帖子类型。当用户单击my portfolio链接时,会将他们带到archive-portfolio.php,其中显示我所有项目的图库;当用户单击项目时,会将他们带到single-portfolio.php,其中显示关联的项目。 一切都正常工作,样式正确,但现在我想让archive-portfolio.php上的gall

  • 在我正在构建的当前网站中,我构建了以下功能。 对当前形势给予更好的理解。 有一个叫做博客的页面。此页面显示列表中的所有博客(帖子)。所有职位的类别都有一个例外。用户可以选择一个类别。一旦用户单击它,用户将转到该类别。php并查看所有具有该特定类别的帖子。 我想创建相同的场景,但不是用自定义帖子类型。我有一个模板部分;offer-list-template.php offer-list-templa

  • 我为他们定制了帖子类型和类别。我想做的就是列出所有自定义类别,列出属于该类别的所有帖子(包括标题和摘录)。我找到的解决方案都不起作用。我可以显示自定义类别,但不能列出属于这些类别的帖子。这是我的密码 上面的代码显示这个类别中甚至有1个帖子(帖子计数),所以帖子的问题在Foreach agrument中存在。 有什么想法吗? 谢谢

  • 我觉得这个问题有一个非常简单的解决方案。但是,在尝试解决了大约3个小时未果后,我谦卑地来找你。 一个自定义的帖子类型,乐队,已经创建,并有几个自定义字段(这是通过高级自定义字段插件创建的。) 我将如何获得和显示的内容(特别是自定义字段数据)的特定带条目(使用其ID或标题或段塞)内的一个常规的帖子?(见下图) 我们必须提供ID/title/slug,以便它知道要显示的band post的内容 短代码

  • 我正在使用WordPress,并且我确实创建了一个具有多个自定义字段(使用ACV,高级自定义字段)的自定义帖子类型,我已经隐藏了所有基本的WordPress字段,如标题,内容编辑器缩略图等,因此我只保留我的自定义字段以创建新帖子。 由于在创建帖子时标题未填写,因此我得到了一个帖子列表,其中每个标题都设置为“自动草稿”,这显然是我不想要的。 我的问题很简单: 是否可以,如果可以,如何在仪表板帖子列表