{"id":6365,"date":"2016-02-24T15:49:59","date_gmt":"2016-02-24T20:49:59","guid":{"rendered":"https:\/\/themespress.ca\/?p=6365"},"modified":"2022-09-11T10:47:29","modified_gmt":"2022-09-11T14:47:29","slug":"sort-post-types-by-popularity","status":"publish","type":"post","link":"https:\/\/themespress.ca\/en\/sort-post-types-by-popularity\/","title":{"rendered":"Sort Post Types by Popularity"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>With this tutorial, we will help you sort your post types by their popularity. First thing we need to do is a meta post (views) which will all you go get each post type&#8217;s number of views.<\/p>\n<p>We will call it via_views_count which will the meta key to get with our query.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-6029200\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-6029200\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"php\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ Popular Posts By views for Posts\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\nfunction via_post_views($postID) {\n$count_key = &#039;via_views_count&#039;;\n$count = get_post_meta($postID, $count_key, true);\nif($count==&#039;&#039;){\n$count = 0;\ndelete_post_meta($postID, $count_key);\nadd_post_meta($postID, $count_key, &#039;0&#039;);\n}else{\n$count++;\nupdate_post_meta($postID, $count_key, $count);\n}}\n\/\/To keep the count accurate, lets get rid of prefetching\nremove_action( &#039;wp_head&#039;, &#039;adjacent_posts_rel_link_wp_head&#039;, 10, 0);\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ Tracks Views\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nfunction via_track_post_views ($post_id) {\nif ( !is_single() ) return;\nif ( empty ( $post_id) ) {\n\tglobal $post;\n$post_id = $post-&gt;ID;    \n}\nvia_post_views($post_id);}\nadd_action( &#039;wp_head&#039;, &#039;via_track_post_views&#039;);\n\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ Get Posts Views\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nfunction via_get_post_views($postID){\n$count_key = &#039;via_views_count&#039;;\n$count = get_post_meta($postID, $count_key, true);\nif($count==&#039;&#039;){\ndelete_post_meta($postID, $count_key);\nadd_post_meta($postID, $count_key, &#039;0&#039;);\nreturn &quot;0 Vue&quot;;\n}\nreturn $count.&#039; Vues&#039;;\n}\n<\/pre><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>We will create the Views column displayed in the post table which will return each post&#8217;s views.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-5926096\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-5926096\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"php\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\/\/ Admin Columns display posts Views\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\n\nadd_filter(&#039;manage_posts_columns&#039;, &#039;via_column_views&#039;);\nadd_action(&#039;manage_posts_custom_column&#039;, &#039;via_custom_column_views&#039;,5,2);\nfunction via_column_views($defaults){\n    $defaults[&#039;via_post_views&#039;] = __(&#039;Vues&#039;);\n    return $defaults;\n}\nfunction via_custom_column_views($column_name, $id){\n        if($column_name === &#039;via_post_views&#039;){\n        echo via_get_post_views(get_the_ID());\n    }\n}<\/pre><\/div><h2 style=\"text-align: left\" class=\"vc_custom_heading vc_do_custom_heading\" >Sort Post Types by Popularity<\/h2>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Here&#8217;s the query to use to sort your post types by popularity.<\/p>\n<p>You can use your HTML to display the results. In this tutorial, it&#8217;s only an hyperlink.<\/p>\n<p>Replace <strong>post<\/strong> by the name of your <strong>Post Type<\/strong>.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-2918585\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-2918585\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"php\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">&lt;?php \n$popularpost = new WP_Query( \narray( \n&#039;post_type&#039;                 =&gt; &#039;post&#039;, \n&#039;post_status&#039;               =&gt; &#039;publish&#039;, \n&#039;posts_per_page&#039;            =&gt; 9, \n&#039;meta_key&#039;                  =&gt; &#039;via_views_count&#039;, \n&#039;orderby&#039;                   =&gt; &#039;meta_value_num&#039;, \n&#039;order&#039;                     =&gt; &#039;DESC&#039; ) ); \nwhile ( $popularpost-&gt;have_posts() ) : $popularpost-&gt;the_post(); \n?&gt;\n&lt;?php the_title();?&gt;\n&lt;?php endwhile; ?&gt;\t\n&lt;?php wp_reset_query(); ?&gt;<\/pre><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p><a class=\"more\" href=\"https:\/\/codex.wordpress.org\/Function_Reference\/add_post_meta\" target=\"_blank\" rel=\"noopener\">Learn more about add_post_meta<\/a><\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"With this tutorial, we will help you sort your post types by their popularity. First thing we need to do is a meta post (views) which will all you go<div class=\"read-more\"><a class=\"btn button-secondary\" href=\"https:\/\/themespress.ca\/en\/sort-post-types-by-popularity\/\">Read More<\/a><\/div>","protected":false},"author":81,"featured_media":4507,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[283],"tags":[322],"class_list":["post-6365","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-query"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts\/6365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/comments?post=6365"}],"version-history":[{"count":0,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts\/6365\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/media\/4507"}],"wp:attachment":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/media?parent=6365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/categories?post=6365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/tags?post=6365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}