Wordpress 按浏览量最大的分类产品
我正在使用一个插件,它已经统计了产品视图并将其存储在一个名为“mwb_wpr_data”的表中 列出产品视图的查询是:Wordpress 按浏览量最大的分类产品,wordpress,woocommerce,hook-woocommerce,Wordpress,Woocommerce,Hook Woocommerce,我正在使用一个插件,它已经统计了产品视图并将其存储在一个名为“mwb_wpr_data”的表中 列出产品视图的查询是: 从“mwb\u wpr\u data”中选择不同的('productid'),其中“action'”为“view” productid字段是Woocomerce产品的FK 如何修改Woocommerce的默认排序,使其能够根据“mwb_wpr_数据”表中大多数视图的顺序显示产品 使用插件后视图计数器的当前代码: add_action( 'pre_get_posts', 'my_
从“mwb\u wpr\u data”中选择不同的('productid'),其中“action'”为“view”
productid字段是Woocomerce产品的FK
如何修改Woocommerce的默认排序,使其能够根据“mwb_wpr_数据”表中大多数视图的顺序显示产品
使用插件后视图计数器的当前代码:
add_action( 'pre_get_posts', 'my_view_filter' );
function my_view_filter($query){
if (
$query->is_main_query() &&
( $query->is_home() || $query->is_archive() || $query->is_search() )
) {
$query->set('suppress_filters', 'false');
$query->set('orderby', 'post_views');
$query->set('order', 'DESC');
}
}
我不确定你正在使用的插件(如果你能提供更多的信息,那就太好了),但我已经使用多年了,效果非常好 它甚至还有一个查询参数用于WP\u query(通过帖子视图查询帖子): 编辑:如果没有插件,此查询参数将无法工作,因为它不是WordPress的默认参数 有关此插件API的更多信息,请单击此处: 我希望这有帮助,
干杯 不确定您正在使用的插件(如果您能提供更多信息,那就太好了),但我已经使用多年了,效果非常好 它甚至还有一个查询参数用于WP\u query(通过帖子视图查询帖子): 编辑:如果没有插件,此查询参数将无法工作,因为它不是WordPress的默认参数 有关此插件API的更多信息,请单击此处: 我希望这有帮助,
干杯 根据我的说法,您已经设置了正确的pre\u get\u post,但问题在于您的if条件 您已经设置了当前\u用户\u can,该筛选器不适用于每个用户,因此如果您未使用管理员角色登录,则查询将无法工作
current_user_can('administrator')
从条件中删除上面的一个
add_action( 'pre_get_posts', 'my_view_filter' );
function my_view_filter($query){
if ($query->is_main_query() && ( $query->is_home() || $query->is_archive() || $query->is_search() )
) {
$query->set('suppress_filters', 'false');
$query->set('orderby', 'post_views');
$query->set('order', 'DESC');
}
}
根据我的说法,你已经设置了正确的pre_-get_-post,但问题在于你的if条件 您已经设置了当前\u用户\u can,该筛选器不适用于每个用户,因此如果您未使用管理员角色登录,则查询将无法工作
current_user_can('administrator')
从条件中删除上面的一个
add_action( 'pre_get_posts', 'my_view_filter' );
function my_view_filter($query){
if ($query->is_main_query() && ( $query->is_home() || $query->is_archive() || $query->is_search() )
) {
$query->set('suppress_filters', 'false');
$query->set('orderby', 'post_views');
$query->set('order', 'DESC');
}
}
好的,正确的方法是
$args = array(
'meta_key' => '_post_views_count',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
行吗?是的。好的,所以正确的方法是
$args = array(
'meta_key' => '_post_views_count',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
行吗?是。根据插件文档,您还需要通过post_类型才能正常工作,即
$args = array(
'order' => 'asc',
'post_type' => 'event',
// required by PVC
'suppress_filters' => false,
'orderby' => 'post_views',
'fields' => ''
);
$most_viewed = get_posts( $args );
该代码位于@Marounn在更高评论中链接到的帖子中
同时尝试传递post_type arg,即
$query->set('post_type', 'product');
根据插件文档,您需要通过post_类型才能正常工作,即
$args = array(
'order' => 'asc',
'post_type' => 'event',
// required by PVC
'suppress_filters' => false,
'orderby' => 'post_views',
'fields' => ''
);
$most_viewed = get_posts( $args );
该代码位于@Marounn在更高评论中链接到的帖子中
同时尝试传递post_type arg,即
$query->set('post_type', 'product');
如果您想显示浏览次数最多的产品,则可以按照以下步骤操作 步骤:1我使用(添加菜单页面)功能在管理面板中添加菜单。在函数文件中
function admin_manage_users22(){
add_menu_page('My Page Title', 'MVP', 'manage_options', 'MVP_backend_view',
'MVP_backend_view' );
}
add_action('admin_menu', 'admin_manage_users22');
步骤:2在用户查看产品后获取产品详细信息。它是带有post id的wp_Posteta中的+1计数器值。默认值设置为1
function MVP_product_details($product ) {
$post_id = get_the_ID();
$count_key = 'AK_product_view_count';
$count = get_post_meta( $post_id, $count_key, true );
if ( empty( $count ) ) {
delete_post_meta( $post_id, $count_key );
update_post_meta( $post_id, $count_key, '1' );
echo "count null";
}else{
$count ++;
update_post_meta( $post_id, $count_key, (string) $count );
}
}
add_filter( 'woocommerce_quantity_input_args', 'MVP_product_details', 10, 2 );
步骤:3现在,您只需使用下面的代码就可以获得查看最多的产品详细信息
function MVP_backend_view(){
$count_key = 'AK_product_view_count';
$query_args = array(
'posts_per_page' => 3,
'no_found_rows' => 1,
'post_status' => 'publish',
'post_type' => 'product',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_key' => $count_key,
);
$query_args['meta_query'] = array(
array(
'key' => $count_key,
'value' => '0',
'type' => 'numeric',
'compare' => '>',
),
);
$zwcmvp_query = new WP_Query( $query_args );
如果您想显示浏览次数最多的产品,则可以按照以下步骤操作 步骤:1我使用(添加菜单页面)功能在管理面板中添加菜单。在函数文件中
function admin_manage_users22(){
add_menu_page('My Page Title', 'MVP', 'manage_options', 'MVP_backend_view',
'MVP_backend_view' );
}
add_action('admin_menu', 'admin_manage_users22');
步骤:2在用户查看产品后获取产品详细信息。它是带有post id的wp_Posteta中的+1计数器值。默认值设置为1
function MVP_product_details($product ) {
$post_id = get_the_ID();
$count_key = 'AK_product_view_count';
$count = get_post_meta( $post_id, $count_key, true );
if ( empty( $count ) ) {
delete_post_meta( $post_id, $count_key );
update_post_meta( $post_id, $count_key, '1' );
echo "count null";
}else{
$count ++;
update_post_meta( $post_id, $count_key, (string) $count );
}
}
add_filter( 'woocommerce_quantity_input_args', 'MVP_product_details', 10, 2 );
步骤:3现在,您只需使用下面的代码就可以获得查看最多的产品详细信息
function MVP_backend_view(){
$count_key = 'AK_product_view_count';
$query_args = array(
'posts_per_page' => 3,
'no_found_rows' => 1,
'post_status' => 'publish',
'post_type' => 'product',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_key' => $count_key,
);
$query_args['meta_query'] = array(
array(
'key' => $count_key,
'value' => '0',
'type' => 'numeric',
'compare' => '>',
),
);
$zwcmvp_query = new WP_Query( $query_args );
您的产品视图应该使用post meta保存。这会更容易。您的产品视图应存储为产品元。使用按元值排序将更容易排序。您可以与我共享该插件名称吗?您的产品视图应使用post meta保存。这会更容易。你的产品视图应该存储为产品元。使用按元值排序会更容易。你能和我分享插件名称吗?你能帮我在“pre_get_posts”中使用它吗?可能吗?我已经用代码更新了我的问题!以下是的可能值,
“后期视图”
不是其中之一。@Reigel是正确的。orderby不接受“post_views”值,主要是因为Wordpress没有将此数据记录为默认值。您好@Reigel,您是对的,这不是Wordpress默认值,您需要先添加插件。我会相应地更新我的答案。@BernardoLima,我从来没有用pre_get_posts尝试过这个,你为什么还要用它?如果正在使用自定义模板,请直接更改查询。如果没有,请尝试实现子主题并直接更新代码(它将自动覆盖它)<>。让我知道给你额外的帮助。你能帮我在“pre_get_posts”中使用它吗?可能吗?我已经用代码更新了我的问题!以下是的可能值,“后期视图”
不是其中之一。@Reigel是正确的。orderby不接受值“post_views”,主要是因为此数据不是reco