我有一个自定义的帖子类型,叫做books, 包含“流派”、“作者”和“书名”字段。我想根据上述3个字段中的数据动态创建一个名为“booklink”(自定义字段)的链接,并将“booklink”放入数据库中,以便发布或更新帖子。
我该怎么做?
我的代码:
<?php
$genre = get_field(\'genre\');
$bookname=get_field(\'bookname\');
$author=get_field(\'author);
$booklink="http://mybooks/".$genre."/".$author."/".$bookname.".com";
?>
我不知道如何在发布/更新的每篇文章的数据库中创建“booklink”字段,并用数据进行更新。我想直接检索“booklink”,而不是每次为post\\u类型的书籍生成它。
请引导。
Changed code to elaborate more
使用代码的方式
passatgt, 我尝试了以下方法:-
function update_bookstore_field( $post_id ) {
if ( $_POST[\'post_type\'] == \'books\' ) {
$booklist = get_field(\'booklist\');
foreach ($booklist as $post) : setup_postdata($post);
if (!empty($post)) {
$bookstore=array();
$bookstore[] = strip_tags(get_field(\'bookstore\',$post));
}
endforeach;
wp_reset_postdata();
update_post_meta( $post_id, \'bookstore\', $bookstore[0] );
}
}
add_action( \'save_post\', \'update_bookstore_field\' );
如果booklist是作为post对象连接到书籍的post类型,则根据在booklist中选择的书籍,自定义字段Booker in post type=books将填充booklist post类型的相应书店。
e、 g。
booklist bookstore
-------- ---------
Wiz of Oz Amazon
Wiz of Oz 1 Flipkart
Wiz of Oz 2 Barnes&Noble
因此,如果在books post type的select字段中,在booklist中选择了“Wiz of Oz 1”,则books中的书店应在单击publish或update时自动填充flipkart。。。这是不可能的。
最合适的回答,由SO网友:passatgt 整理而成
您是否使用高级自定义字段,对吗?不确定ACF是否会在没有将$post\\u id设置为get\\u字段的第二个参数的情况下拾取字段,因此我更改了您的代码以包含post id。
function update_booklink_field( $post_id ) {
if ( \'book\' == $_POST[\'post_type\'] ) {
$genre = get_field(\'genre\',$post_id);
$bookname=get_field(\'book name\',$post_id);
$author=get_field(\'author\',$post_id);
$booklink="http://mybooks/".$genre."/".$author."/".$bookname.".com";
update_post_meta( $post_id, \'booklink\', $booklink );
}
}
add_action( \'save_post\', \'update_booklink_field\' );
“save\\u post”操作将在发布和后期编辑时运行。