2

私が書いた次のWP関数とショートコードがあります

function selected_inventory_products( $atts ) {
    extract( shortcode_atts( array(
        'brand' => '',
        'product' => '',
    ), $atts ) );

        global $wpdb;
        $inventory_products = $wpdb->get_results("SELECT * FROM wp_inventory, wp_inventory_images WHERE wp_inventory.inventory_id = wp_inventory_images.inventory_id and sort_order = 0 and inventory_manufacturer = '".$brand."'");

        foreach($inventory_products as $i_products){
        $return_string = '<div style="background: #F4F4F4; width: 100%;">';
        $return_string .= '<a href="http://www.devicemondo.com/products/item/'.$i_products->inventory_slug.'/">'.$i_products->inventory_name.'</a>';
        $return_string .= '</div>';
        }

        return $return_string;

}
add_shortcode( 'post_sidebar_products', 'selected_inventory_products' );

問題は、WP ページ内でショートコード [post_sidebar_products] を使用すると、15 以上ある場合でも結果が 1 つしか得られないことです。どこで間違いを犯したか分かりますか?

手伝ってくれてありがとう

4

1 に答える 1

2

ああ!ちょうどそれを見た。ループ内で毎回 $return_string を再定義しています! 等号の前にドットがない最初の行のためです。だからこれを置き換えます:

    $return_string = '<div style="background: #F4F4F4; width: 100%;">';

これとともに :

    $return_string .= '<div style="background: #F4F4F4; width: 100%;">';
于 2012-12-04T22:40:33.560 に答える