Хотите заказать Meta Values ​​(твикинг Post Order Widget)

Я не очень кодер, но я могу немного настроить PHP. В основном я хочу заказать заказным значением meta, которое целым называется «цена». Плагин заказывается по названию, так что то, что я меняю на цену, показано здесь. Я видел некоторые другие сообщения о заказе с помощью значения meta value, но логика кода была слишком различной для моих слабых навыков кодера, чтобы согласовать с кодом в плагине. Любая помощь?

case 'title': $orderby = "price"; $order = "ASC"; break; 

Вот целая функция:

  public function frontend_initialiser($vars){ //Requête modifiable uniquement pour la toute première requête SQL. if(is_main_query() && $this->firstQuery){ $this->firstQuery = FALSE; //On récupère la sélection de l'utilisateur $this->selection = isset($_GET['pow']) ? $_GET['pow'] : ""; //Calcul du type (uniquement ceux gérés par l'extension) de taxonomie en cours. if(is_category()){ $this->type = "category"; }elseif(is_tag()){ $this->type = "post_tag"; } //Si le type est géré par l'extension, on récupère le slug courant. if($this->type != '')$this->slug = $vars->query_vars[$this->type . "_name"]; //Le visiteur n'a pas demandé à changer le tri. if($this->selection == ''){ //Par défaut, on garde le tri par défaut. $this->selection = self::POW_DEFAUT; //Maintenant, on va regarder si le tri par défaut ne serait pas différent de celui définit nativement if($this->slug != ''){ //Recovering the conf different for different type of taxonomy $terms = $this->select_term($this->type); //If you look at the admin changed the default sort . if(array_key_exists($this->type, $terms) && array_key_exists($this->slug, $terms[$this->type]))$this->selection = $terms[$this->type][$this->slug]; } } // We end up modifying the ORDER BY clause of the query. switch ($this->selection) { //Sélection par défaut : Tri du plus récent au plus ancien case 'dated': $orderby = "date"; $order = "DESC"; break; //Tri du plus ancien au plus récent case 'datea': $orderby = "date"; $order = "ASC"; break; //TRYING TO CHANGE CODE TO ORDER BY PRICE METAKEY VALUE case 'title': $orderby = "price"; $order = "ASC"; break; //for simple cases , the value of the item of the combo is what will be used in the " order by " of the SQL query . default: $orderby = $this->selection; $order = "DESC"; } //On applique le filtre $vars->set('orderby', $orderby); $vars->set('order', $order); } return $vars; } 

Solutions Collecting From Web of "Хотите заказать Meta Values ​​(твикинг Post Order Widget)"

Поскольку price не является столбцом столбца (я предполагаю, что это meta_value_num сообщения), вам нужно расширить запрос и порядок вместо meta_value_num :

 case 'title': if ( ! $meta_query = $vars->get( 'meta_query' ) ) $meta_query = array(); $meta_query[] = array( 'compare' => '!=', 'value' => '', 'key' => 'price', /* This should be the name of your meta field that stores price */ ); $vars->set( 'meta_query', $meta_query ); $orderby = 'meta_value_num'; $order = 'ASC'; break;