Добавление функции выпадающего на нужной странице WordPress - PullRequest
0 голосов
/ 26 февраля 2019

Я сделал функцию, которая теоретически должна изменять отображаемое количество продуктов в выпадающем списке Woocommerce.Функция из другого потока здесь.

У меня вопрос, как показать выпадающий список на странице, на которой я хочу быть видимым?

Это функция

add_action( 'woocommerce_before_shop_loop', 'ps_selectbox', 25 );
function ps_selectbox() {
    $per_page = filter_input(INPUT_GET, 'perpage', FILTER_SANITIZE_NUMBER_INT);     
    echo '<div class="dropdown2">';
    echo '<button onclick="myPage()" class="dropbtn">Per page </button>';
    echo '<div id="myPage" class="dropdown-content">';
    $orderby_options = array(
        '15' => '15',
        '20' => '20',
        '50' => '50',
        '75' => '75',
        '150' => '150',
        '200' => '200'
    );
    foreach( $orderby_options as $value => $label ) {
        echo "<a ".selected( $per_page, $value )." onchange="if (this.value) window.location.href=this.value" value='?perpage=$value'>$label</a>";
    }
    echo '</div>';
    echo '</div>';
}

add_action( 'pre_get_posts', 'ps_pre_get_products_query' );
function ps_pre_get_products_query( $query ) {
    $per_page = filter_input(INPUT_GET, 'perpage', FILTER_SANITIZE_NUMBER_INT);
    if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'product' ) ) {
        $query->set( 'posts_per_page', $per_page );
    }
}

1 Ответ

0 голосов
/ 26 февраля 2019
if(!function_exists('ps_selectbox')){
    function ps_selectbox() {
        $per_page = filter_input(INPUT_GET, 'perpage', FILTER_SANITIZE_NUMBER_INT);     
        echo '<div class="dropdown2">';
        echo '<button onclick="myPage()" class="dropbtn">Per page </button>';
        echo '<div id="myPage" class="dropdown-content">';
        $orderby_options = array(
            '15' => '15',
            '20' => '20',
            '50' => '50',
            '75' => '75',
            '150' => '150',
            '200' => '200'
        );
        foreach( $orderby_options as $value => $label ) {
            echo "<a ".selected( $per_page, $value )." onchange='if (this.value) window.location.href=this.value' value='?perpage=$value'>$label</a>";
        }
        echo '</div>';
        echo '</div>';
    }
}

Добавьте это в functions.php и вызовите функцию ps_selectbox ()

function render_ps_selectbox() {
    return ps_selectbox();
}
add_shortcode( 'ps_selectbox', 'render_ps_selectbox' );

Используйте [ps_selectbox] в конструкторе страниц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...