我在我的主题中有一些元框自定义帖子类型(产品)。我的客户要求我在保存产品时自动提供唯一的SKU(元框)。
我的想法:
提供一个随机ID=>必须检查该ID是否存在于其他地方,或者
保存一次后,请给出Post ID=>,因为WP在保存时会分配该ID。
@Milo“此外,在用户保存帖子之前,一篇新帖子已经有了ID”如何在保存帖子并将其放入元框并立即与新帖子一起保存之前获取ID?
谢谢
我在我的主题中有一些元框自定义帖子类型(产品)。我的客户要求我在保存产品时自动提供唯一的SKU(元框)。
我的想法:
提供一个随机ID=>必须检查该ID是否存在于其他地方,或者
保存一次后,请给出Post ID=>,因为WP在保存时会分配该ID。
@Milo“此外,在用户保存帖子之前,一篇新帖子已经有了ID”如何在保存帖子并将其放入元框并立即与新帖子一起保存之前获取ID?
谢谢
当你add a meta box, post对象被传递给输出元框内容的函数,ID立即可用。下面是一个快速的概念证明,在创建新帖子时,它会将ID放在帖子元框的一个字段中:
function wpd_sku_meta_box() {
add_meta_box(
\'wpd_sku\',
\'SKU\',
\'wpd_render_meta_box\',
\'post\'
);
}
add_action( \'add_meta_boxes\', \'wpd_sku_meta_box\' );
function wpd_render_meta_box( $post ) {
// $post->ID contains the ID of newly created post:
echo \'<input type="text" id="wpd_sku" name="wpd_sku" value="\' . $post->ID . \'">\';
}
function wpd_sku_save( $post_id ) {
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
return $post_id;
if ( ! isset( $_POST[\'wpd_sku\'] ) )
return $post_id;
$sku = $_POST[\'wpd_sku\'];
update_post_meta( $post_id, \'_wpd_sku\', $sku );
}
add_action( \'save_post\', \'wpd_sku_save\' );
但请不要按原样使用此代码,请从add_meta_box
codex页,其中包含一些nonce和权限检查。是否可以从某个post ID开始循环?我希望所有的帖子都从某个ID开始,体面地。为了解释,我必须先做出一些假设。假设我的WordPress数据库有20篇文章。显然,每个帖子都有一个ID,并假设这些帖子的ID范围为1到20。还假设当我们通过循环加载post时,默认情况下使用的是所有内容。因此,循环将从20到1检索记录/帖子。如果范围限制为10,则第1页将检索20到11,第2页将检索10到1。现在,回到我的问题上来。假设我想接收记录17到8。我是否可以通过某种方式将17传递给循环,并从17到8检索10条记录?