2013-09-11 4 views
0

Я хочу, чтобы создать пользовательские ссылки, какпользовательский запрос, чтобы получить сообщения (Wordpress)

mydomain.com/custom_page/cat=ABC&tag=XYZ

Так что, когда пользователь нажимает на ссылку с/он может видеть все сообщения в категории «ABC», имеющей тег «XYZ»

Для этого я создал собственный шаблон с помощью следующего кода

<?php 
/* 
Template Name: MyCustomTemplate 
*/ 
?> 

<?php get_header(); ?> 
global $wp_query; 
get_query_var('cat'); 
get_query_var('tag'); 

Я надеваю Не знаю, как запросить сообщения в категории «ABC» с тегом «XYZ»

Я проверил http://codex.wordpress.org/Function_Reference/query_posts#Passing_variables_to_query_posts , но приведенные там примеры используют «статические» значения. Мне нужно запросить динамические значения: они передаются через URL.

Кроме того, я использую плагин «Дополнительные пользовательские поля» и добавил поле «priority» с дефолтным значением «Z». Я намереваюсь назначить один алфавит для каждого сообщения в поле приоритета, чтобы результаты на странице были отсортированы в соответствии с «приоритетом»: сообщения с приоритетом «A» сверху, а затем сообщения с приоритетом «B» и так далее ..

ответ

0

Прежде всего, вы не используете get_query_var() правильно. Это php-функция и должна быть внутри php-тегов, и эта функция возвращает требуемую информацию, поэтому вам придется сохранять ее в переменной. Для примера, вы должны использовать его как это:

<?php 
/* 
Template Name: MyCustomTemplate 
*/ 
?> 

<?php get_header();?> 
<?php global $wp_query; 
$gotten_cat = get_query_var('cat'); 
$gotten_tag = get_query_var('tag'); ?> 

Теперь, если вы залежная ссылку как mydomain.com/custom_page/cat=ABC & тега = XYZ, то $gotten_cat будет иметь значение «ABC» и $gotten_tag будет иметь значение = "XYZ". В какой-то момент вам нужно решить, является ли «ABC» категорией slug или идентификатором категории, то же самое с тегом

Теперь, если мы предположим, что ABC является идентификатором категории, а XYZ является идентификатором тега (если это пробковые есть 2 строки, которые будут добавлено, где вы получите идентификатор кота/тега, это слизняк) код будет выглядеть так:

$args = array(
     'cat'  => $gotten_cat, // this uses cat id for cat slug use 'category_name' 
     'tag_id' => $gotten_tag, //this uses tag id for tag slug use 'tag' 
     'meta_key' => 'priority', 
     'orderby' => 'meta_value', 
     'order' => 'ASC', 
     ); 

// run the query 
query_posts($args); 

это должно запросить сообщения от кошачьей ABC и бирки XYZ имеет приоритет meta_key набор и посты будут упорядочены по значениям meta_value (A, B, C ...) по возрастанию.

Пожалуйста, прочитайте страницу wp codex, относящуюся к WP_Query, вы узнаете, как использовать параметры с запросами Wordpress.

Смежные вопросы