Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在所需页面上添加功能下拉列表wordpress_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 在所需页面上添加功能下拉列表wordpress

Php 在所需页面上添加功能下拉列表wordpress,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我做了一个函数,理论上可以改变Woocommerce下拉列表中显示的产品数量。该函数来自这里的另一个线程 我的问题是如何在我想要显示的页面上显示下拉列表 这就是函数 add_action( 'woocommerce_before_shop_loop', 'ps_selectbox', 25 ); function ps_selectbox() { $per_page = filter_input(INPUT_GET, 'perpage', FILTER_SANITIZE_NUMBER_I

我做了一个函数,理论上可以改变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 );
    }
}
add_action('woocommerce_-before_-shop_-loop','ps_-selectbox',25);
函数ps_selectbox(){
$per_page=过滤器输入(输入获取'perpage',过滤器消毒\u编号\u INT);
回声';
回音“每页”;
回声';
$orderby_options=数组(
'15' => '15',
'20' => '20',
'50' => '50',
'75' => '75',
'150' => '150',
'200' => '200'
);
foreach($orderby_选项为$value=>$label){
回声“;
}
回声';
回声';
}
添加操作('pre_get_posts'、'ps_pre_get_products_query');
函数ps\u pre\u get\u products\u query($query){
$per_page=过滤器输入(输入获取'perpage',过滤器消毒\u编号\u INT);
如果($query->is_main_query()&&!is_admin()&&is_post_type_归档('product')){
$query->set('posts\u per\u page',$per\u page);
}
}

使用页面生成器中的[ps\U selectbox]谢谢,但有疑问。如何在主题生成器中调用
ps\u selectbox()
?我试过使用
raw HTML
box,但我看到
ps\u selectbox()
是一个文本,因为目前我可以访问管理仪表板only@Ivanov更新的回答嗯,有些地方不对。当我在产品类别中时,例如
http://example.com/products/?countries=usa
下拉列表显示所有类别的选项,而不是
15
20
,…等。它正在打印
http://example.com/products/?product_cat=carpets
。很奇怪。
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>';
    }
}
function render_ps_selectbox() {
    return ps_selectbox();
}
add_shortcode( 'ps_selectbox', 'render_ps_selectbox' );