gpt4 book ai didi

wordpress - 如何显示自定义帖子类型的自定义数据

转载 作者:行者123 更新时间:2023-12-02 22:12:09 24 4
gpt4 key购买 nike

我创建了一个自定义帖子类型。它将在 WordPress 仪表板中加载得很好,我也可以保存它。现在假设它是一个自定义帖子类型,其中包含一些字符串和一些日期的数据。

我希望能够检索这些自定义帖子类型(我使用 WP_Query 并将 post_type 指定为自定义帖子类型的名称来完成此操作)。当我在返回的对象上调用 print_r 时,对象中没有存储自定义数据(字符串和日期)的地方。我如何从数据库中检索这些?

我已经环顾了几个小时,但没有找到任何检索此数据的方法。

根据要求:这就是数据的存储方式:

function update_obituary(){
global $post;
update_post_meta($post->ID, "first_name", $_POST["first_name"]);
update_post_meta($post->ID, "last_name", $_POST["last_name"]);
update_post_meta($post->ID, "birth_date", $_POST["birth_date"]);
update_post_meta($post->ID, "death_date", $_POST["death_date"]);
update_post_meta($post->ID, "publication_date", $_POST["publication_date"]);
}

该函数与“save_post” Hook 相关联。当我在编辑模式下重新打开自定义帖子类型实例时,数据将重新显示。这意味着它存储在数据库中,对吧?

最佳答案

如果在编辑该类型的帖子时显示元数据,那么是的,它一定已成功存储在数据库中。

有两个 wp 函数用于检索自定义帖子类型的元数据:get_post_custom_valuesget_post_meta 。区别在于,get_post_custom_values 可以访问非唯一的自定义字段,即具有与单个键关联的多个值的字段。不过,您也可以选择将它用于独特的领域 - 品味问题。

假设您的帖子类型称为“讣告”:

// First lets set some arguments for the query:
// Optionally, those could of course go directly into the query,
// especially, if you have no others but post type.
$args = array(
'post_type' => 'obituary',
'posts_per_page' => 5
// Several more arguments could go here. Last one without a comma.
);

// Query the posts:
$obituary_query = new WP_Query($args);

// Loop through the obituaries:
while ($obituary_query->have_posts()) : $obituary_query->the_post();
// Echo some markup
echo '<p>';
// As with regular posts, you can use all normal display functions, such as
the_title();
// Within the loop, you can access custom fields like so:
echo get_post_meta($post->ID, 'birth_date', true);
// Or like so:
$birth_date = get_post_custom_values('birth_date');
echo $birth_date[0];
echo '</p>'; // Markup closing tags.
endwhile;

// Reset Post Data
wp_reset_postdata();

请注意,避免混淆:省略 get_post_meta 中的 bool 值将使其返回数组而不是字符串。 get_post_custom_values 始终返回一个数组,这就是为什么在上面的示例中,我们回显 $birth_date[0],而不是 $birth_date.

此外,我目前还不能 100% 确定 $post->ID 是否会按上面的预期工作。如果没有,请将其替换为 get_the_ID()。两者都应该有效,其中之一肯定会有效。可以测试一下,但可以节省自己的时间......

为了完整起见,请检查 WP_Query 上的法典了解更多查询参数和正确用法。

关于wordpress - 如何显示自定义帖子类型的自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com