目前,我的自动过帐流程文件有以下代码。
// Create post object
$my_post = array(
\'post_title\' => wp_strip_all_tags( trim( $row[\'title\'] ) ),
\'post_content\' => $content,
\'post_format\' => \'audio\',
\'post_status\' => \'publish\',
\'post_author\' => 1,
\'post_category\' => array( 2 ),
\'post_date\' => date(\'Y-m-d H:i:s\')
);
你可以看到上面我已经包括了
\'post_format\' => \'audio\',
在我的数组中,但这似乎并没有将现有的post格式从“标准”设置为“音频”,这正是我试图实现的。
Screen Shot.
现在我开始在这里取得一些进展,但我仍然处于死胡同。
set_post_format($post->ID, \'audio\' );
如果我将此添加到我的循环中,在编辑我的帖子时,它实际上会将格式更改为音频,但我必须手动编辑帖子才能更改,这是一个问题。
<?php
while ( have_posts() ) : the_post();
set_post_format($post->ID, \'audio\' );
get_template_part( \'template-parts/content\', get_post_format() );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
?>
以上是我的循环,在这一点上,真诚地感谢任何帮助。。我正在努力解决这个问题,希望知道如何自动设置它,以便
post_format
每次上传时默认为“音频”。
SO网友:fischi
您可以将操作添加到wp_insert_post()
. 最酷的是第三个参数-$update
, 因为它只允许您设置post_format
一次,以后可以更改。这是必要的,因为功能wp_insert_post()
不仅在创建时调用,而且在更新等时调用。
add_action( \'wp_insert_post\', \'f711_set_default_format\', 10, 3 );
function f711_set_default_format( $post_ID, $post, $update ) {
// execute only on creation, not on update, and only if the post type is post
if ( $update !== true && $post->post_type == \'post\' ) {
set_post_format( $post_ID, \'audio\' );
}
}
如果您需要对所有现有帖子执行此操作,只需创建一个循环并调用
set_post_format()
对于每一个人。