我从一个answer to a previous question:
add_action(\'add_attachment\', function( $attachmentID ) {
if ( ! class_exists( \'WC_Product\' ) ) return; // if no WooCommerce do nothing
// an attachment was jus saved, first of all get the file name
$src = wp_get_attachment_image_src( $attachmentID, \'full\' );
$filename = pathinfo( $src[0], PATHINFO_FILENAME );
// now let\'s see if exits a product with the sku that match filename
$args = array(
\'meta_key\' => \'_sku\',
\'meta_value\' => $filename,
\'post_type\' => \'product\',
\'posts_per_page\' => \'1\' // assuming sku is unique get only one post
);
$prods = get_posts( $args );
if ( ! empty($prods) ) {
// ok we have a match, exists a product having sku that match filename
$product = array_pop( $prods );
// set the thumbnail for the product
set_post_thumbnail( $product, $attachmentID );
// now "attach" the post to the product setting \'post_parent\'
$attachment = get_post( $attachmentID );
$attachment->post_parent = $product->ID;
wp_update_post( $attachment );
}
});
当我将图像添加到媒体库时,它将解决我将图像与现有产品匹配的问题。然而,我不知道我需要在wordpress的什么地方添加它。我对这一切都很陌生。
有人能帮忙吗?
最合适的回答,由SO网友:Tim Malone 整理而成
很可能,您所需要做的就是将此添加到您的主题functions.php
文件
但是,您还应该知道,如果您没有创建此主题并对其进行更新,这些修改将被覆盖。您可以再次应用它们,但这是一种更好的方法(正如我在this answer) 是到create a child theme.
或者,如果这是您想要进行的唯一修改,那么将代码转换为基本插件实际上可能更容易。将其添加到空白文件中,调用它whatever-you-like.php
并将其直接放入wp-content/plugins/
文件夹在文件顶部,打开后<?php
标记,添加此代码:
/* Plugin Name: Match Images to Pre-existing Products */
然后,在你的插件页面上,你会看到这个插件出现——你可以随意激活和取消激活它。
第二种方法的好处是,您也可以对所做的其他修改执行此操作,然后在需要时轻松地单独激活/停用它们。