我是WordPress开发新手,我正在使用wp_insert_post() 要从前端创建帖子,当我已经登录时,此功能可以正常工作,但我需要在没有任何登录的情况下实现此功能。
你能告诉我怎样才能做到这一点吗。
$post = array(
\'post_title\' => "Tshirt-custom-order-".$last_inserted,
\'post_content\' => "oio",
\'post_status\' => "publish",
\'post_excerpt\' => "uuu",
\'post_name\' => "order_custom_".$last_inserted, //name/slug
\'post_type\' => "product",
\'post_author\' =>6
);
//Create product/post:
$new_post_id = wp_insert_post( $post, $wp_error );
//$new_post_id = wp_insert_post( $args );
SO网友:Johansson
您不应允许匿名用户在没有身份验证的情况下在您的网站上发布任何内容。如果需要存储用户指定的自定义数据,则应使用自定义字段。
就你而言,add_post_meta() 很方便。使用创建帖子后wp_insert_post(), 将其ID传递给add_post_meta() 并向该特定帖子添加自定义字段:
$id = wp_insert_post( $args );
if ( $id ) {
add_post_meta( $id, $meta_key, $meta_value, $unique );
}
您还应该在将用户输入插入数据库之前对其进行清理。您可以使用
sanitize_text_field() 正是为了这个目的。