信息:
1.使用Wordpress和WooCommerce,以及Genesis主题(+ Genesis Connect for WooCommerce插件)
2.商店存档页面为Excel Data Table
3.为所有页面激活面包屑(例如商店,类别/存档和单个产品页面)
4.“产品”(固定链接:BARRAY=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
PARAMS=$(ifconfig wlan0 | grep netmask | awk '{print $2" "$4}')
IP_ADDRESS=${PARAMS%% *}
IP_ADDRESS=${IP_ADDRESS//./ }
BINARY_IP_ADDRESS=$(for octet in $IP_ADDRESS; do echo -n ${BARRAY[octet]}" "; done)
BIN_IP_SEP1=${BINARY_IP_ADDRESS//1/1 }
BINARY_IP_ARRAY=( ${BIN_IP_SEP1//0/0 } )
NETMASK=${PARAMS#* }
NETMASK=${NETMASK//./ }
BINARY_NETMASK=$(
for octet in $NETMASK
do
echo -n ${BARRAY[octet]}" "
done
)
BIN_MASK_SEP1=${BINARY_NETMASK//1/1 }
BINARY_MASK_ARRAY=( ${BIN_MASK_SEP1//0/0 } )
# Count bits in MASK ARRAY
BITS_COUNT=0
for i in ${BINARY_MASK_ARRAY[@]}
do
[ "$i" == "1" ] && BITS_COUNT=$((BITS_COUNT + 1))
done
# Count address
NEW_ADDRESS=""
for i in {0..31}
do
[ $(($i % 8)) -ne 0 ] || NEW_ADDRESS+=" "
if [ "${BINARY_MASK_ARRAY[$i]}" == "1" ]
then
NEW_ADDRESS+="${BINARY_IP_ARRAY[$i]}"
else
NEW_ADDRESS+="${BINARY_MASK_ARRAY[$i]}"
fi
done
# Convert binary to decimal
DECIMAL_ADDRESS=`echo $(for octet in $NEW_ADDRESS; do echo $((2#$octet)); done)`
DECIMAL_ADDRESS=${DECIMAL_ADDRESS// /.}
# Final result
echo $DECIMAL_ADDRESS/$BITS_COUNT
)是一个单独的Wordpress页面(不是类别)
尝试实现以下面包屑条件:
1.在“Home”crumb之后添加“Products”crumb(名称:/Shop
,链接:/Products
)(例如Home> Products> Category> Single Product)
2.如果在商店页面内(例如Home> Shop)
我使用以下代码获得了正常运行的结果:
Products
问题是:有更好的方法吗?我的解决方案对我来说有点“hacky”,我想知道我是否会忽略一个明显的&更聪明的方式来实现我想要的结果。
答案 0 :(得分:0)
有一个简短的方法。
add_filter( 'woocommerce_get_breadcrumb', 'remove_shop_crumb', 20, 2 );
function remove_shop_crumb( $crumbs, $breadcrumb ){
foreach( $crumbs as $key => $crumb ){
if( $crumb[0] === __('Home') ) {
array_push($crumbs," /customlink/ ");
}
}
return $crumbs;
}
我还没有机会进行测试,因此您可能需要使用$ crumbs [0]来找到正确的位置,并且不确定是否需要在链接周围使用正斜杠。
答案 1 :(得分:0)
要在回家后添加自定义链接,我们可以使用array_splice函数
add_filter('woocommerce_get_breadcrumb', 'custom_breadcrumb', 20, 2);
function custom_breadcrumb($crumbs, $breadcrumb)
{
if (!empty($crumbs)) {
array_splice($crumbs, 1, 0, array(array(
'Custom Link',
'http://localhost/mysite/custom-link/'
)));
}
return $crumbs;
}
这是变量$crumbs
array(2)
0:array(2)
0:"Home"
1:"http://localhost/mysite"
1:array(2)
0:"Shop"
1:"http://localhost/mysite/shop/"
这就是为什么我两次使用array
,所以结果如下所示的原因
array(3)
0:array(2)
0:"Home"
1:"http://localhost/mysite"
1:array(2)
0:"Custom Link"
1:"http://localhost/mysite/custom-link/"
2:array(2)
0:"Shop"
1:"http://localhost/mysite/shop/"