我正在使用WooCommerce设置WordPress,其中一项要求是一些集成,使一个人从另一个网站直接进入特定产品。我已经在产品的标签上设置了外部产品引用
示例传入查询为:
function solve(arr) {
var sumsMap = {}
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
var sum = arr[i] + arr[j]
// several pairs of indices can correspond to the same summ so keep all of them
var mappedIndices = sumsMap[sum]
if (typeof mappedIndices == "undefined") {
mappedIndices = []
}
let pair = {}
pair.first = i
pair.second = j
mappedIndices.push(pair)
sumsMap[sum] = mappedIndices
}
}
var maxD = Number.MIN_SAFE_INTEGER
for (var k = 0; k < arr.length; k++) {
for (var l = 0; l < arr.length; l++) {
mappedIndices = sumsMap[arr[l] - arr[k]]
if (mappedIndices != undefined) {
// in the worst case, 4 pairs of indices may contain k or l but the fifth one won't as numbers in the array are unique and hence the same index can occur only twice
var steps = Math.min(5, mappedIndices.length)
for (var s = 0; s < steps; s++) {
var pair = mappedIndices[s]
if (pair.first != k && pair.first != l && pair.second != k && pair.second != l) {
maxD = Math.max(maxD, arr[l])
}
}
}
}
}
if (maxD == Number.MIN_VALUE) {
return -1
} else {
return maxD
}
}
document.write(solve([-100,-1,0,7,101] ))
document.write("<br>")
document.write(solve([-93,-30,-31,-32] ))
我已经编写了一个简短的插件来执行此操作,但是我似乎无法通过标签搜索产品。
例如,您可以看到$ params的两行,按产品ID搜索时,最上面的(当前已注释掉)效果很好,但是最下面的试图从tag起作用的内容却没有任何效果。可以看到我要去哪里了吗?
P.S。这是我第一次尝试使用wordpress插件。它可能会导致效率低下,安全性受损或存在一些明显的问题。我将提交它以进行堆栈溢出代码审阅,但我需要解决这个最后一个错误!
感谢您提供的任何帮助。另外,如果您可以提出从标签到产品网址的另一种方法,我会对此感兴趣。
http://localhost/TestSite/search?q=9404
答案 0 :(得分:0)
请尝试以下操作:
function TagLinker(){
if (isset($_GET['q']))
{
$TagNumber = $_GET['q'];
$params=array(
'post_type' => 'product',
'post_status' => 'publish',
'tax_query' => array( array(
'taxonomy' => 'product_tag',
'field' => 'slug',
'terms' => $TagNumber
)
));
$wc_query = new WP_Query($params);
if ($wc_query -> have_posts() ) {
$wc_query -> the_post();
$product_id = get_the_ID($wc_query->ID);
$url = get_permalink( $product_id );
echo $url;
//wp_reset_postdata();
//if ( wp_redirect( $url ) ) {exit;}
};
}
}
add_action( 'init', 'TagLinker' );
答案 1 :(得分:0)
$params=array(
'post_type' => 'product',
'post_status' => 'publish',
'tax_query' => array( array(
'tag' => $TagNumber
),
));
您应该将标签放在数组中。请参考开发者页面中的标签部分。 https://developer.wordpress.org/reference/classes/wp_query/
答案 2 :(得分:0)
$params = array(
'post_status' => 'publish',
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_tag',
'field' => 'slug',
'terms' => $TagNumber,//this is category slug da mani
)
)
);
尝试此代码。它正在我的机器上工作。