WooCommerce:填充 [product_page id="X"] 其中 X 是 URL 参数
WooCommerce: Populate [product_page id="X"] where X is a URL parameter
我编写了以下代码,目的是使用 url 参数动态填充 woocommerce 简码 [product_page id="X"],其中 X 是产品 ID,带有回退如果 url.
中不存在参数,则默认(产品 ID=46)
例如:
example.com/somepage?ppid=60 会将短代码更改为 [product_page id="60"]
而
示例。com/somepage 会将简码更改为 [product_page id="46"],其中 46 是“默认值”
但是,它目前没有返回正确的产品页面。奇怪的是,无论我尝试什么,它都默认为产品 ID 440(这是我数据库中最高的产品 ID)。
function ppid_from_query($atts) {
$atts = shortcode_atts(array('default' => 46), $atts, 'myppid');
$pp_id = $atts['default'];
if (isset($_REQUEST['ppid']) && !empty($_REQUEST['ppid'])) {
$pp_id = intval($_REQUEST['ppid']);
}
if (!empty($pp_id) && 46 != $pp_id) {
return do_shortcode("[product_page id='{$ppid}']");
}
}
add_shortcode('myppid', 'ppid_from_query');
并且将短代码添加到页面,如 [myppid default=46"]
我做错了什么?
您传递了错误的变量 $ppid
而不是 $pp_id
。试试下面的代码。
function ppid_from_query( $atts ) {
$atts = shortcode_atts( array(
'default' => 46
), $atts, 'myppid' );
$pp_id = $atts['default'];
if ( isset( $_REQUEST['ppid'] ) && $_REQUEST['ppid'] != '' ) {
$pp_id = intval( $_REQUEST['ppid'] );
}
return do_shortcode( "[product_page id='".$pp_id."']" );
}
add_shortcode( 'myppid', 'ppid_from_query' );
我编写了以下代码,目的是使用 url 参数动态填充 woocommerce 简码 [product_page id="X"],其中 X 是产品 ID,带有回退如果 url.
中不存在参数,则默认(产品 ID=46)例如:
example.com/somepage?ppid=60 会将短代码更改为 [product_page id="60"]
而
示例。com/somepage 会将简码更改为 [product_page id="46"],其中 46 是“默认值”
但是,它目前没有返回正确的产品页面。奇怪的是,无论我尝试什么,它都默认为产品 ID 440(这是我数据库中最高的产品 ID)。
function ppid_from_query($atts) {
$atts = shortcode_atts(array('default' => 46), $atts, 'myppid');
$pp_id = $atts['default'];
if (isset($_REQUEST['ppid']) && !empty($_REQUEST['ppid'])) {
$pp_id = intval($_REQUEST['ppid']);
}
if (!empty($pp_id) && 46 != $pp_id) {
return do_shortcode("[product_page id='{$ppid}']");
}
}
add_shortcode('myppid', 'ppid_from_query');
并且将短代码添加到页面,如 [myppid default=46"]
我做错了什么?
您传递了错误的变量 $ppid
而不是 $pp_id
。试试下面的代码。
function ppid_from_query( $atts ) {
$atts = shortcode_atts( array(
'default' => 46
), $atts, 'myppid' );
$pp_id = $atts['default'];
if ( isset( $_REQUEST['ppid'] ) && $_REQUEST['ppid'] != '' ) {
$pp_id = intval( $_REQUEST['ppid'] );
}
return do_shortcode( "[product_page id='".$pp_id."']" );
}
add_shortcode( 'myppid', 'ppid_from_query' );