我有一个带有post ID和附件ID的文本文件,如下所示:
post_id,attachment_id
post_id,attachment_id
post_id,attachment_id
post_id,attachment_id
然后我尝试在我的函数中使用一个函数。php文件如下:
function addimg() {
$fh = @fopen( dirname( __FILE__ ) . \'/addimg.txt\', \'r\' );
if ( $fh ) {
while ( ( $line = fgets( $fh ) ) !== false ) {
$ids = explode( \',\', $line );
array_walk( $ids, \'trim\' );
$postid = array_shift( $ids );
set_post_thumbnail( $postid, $ids );
}
}
}
add_action(\'wp_head\', \'addimg\');
但什么都没发生。
我用同样的程序add categories to posts 这是可行的。我还尝试手动将特色图像添加到帖子中,如下所示:
function thumb() {
set_post_thumbnail( 1, 1);
}
add_action(\'wp_head\', \'thumb\');
这是可行的。
所以,我的知识太浅薄,无法理解为什么我所尝试的工作不起作用?
最合适的回答,由SO网友:engelen 整理而成
由于您没有太多编程经验,我将在这里发布一个现成的解决方案。我对你的代码看了很久,问题是array_shift
, $ids
仍然是一个数组。set_post_thumbnail
应为和整数,而不是数组。你可以使用$ids[0]
作为第二个参数,但在我看来,以下是一个更干净的解决方案。
function wpse149149_addimg() {
$fh = @fopen( dirname( __FILE__ ) . \'/addimg.txt\', \'r\' );
if ( $fh ) {
while ( ( $line = fgets( $fh ) ) !== false ) {
$ids = explode( \',\', $line );
array_walk( $ids, \'trim\' );
set_post_thumbnail( $ids[0], $ids[1] );
}
}
}
add_action( \'wp_head\', \'wpse149149_addimg\' );