我想创建像
这样的自定义链接 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' );
我不知道如何使用“XYZ”标签查询“ABC”类别中的帖子
我查了http://codex.wordpress.org/Function_Reference/query_posts#Passing_variables_to_query_posts 但是那里显示的例子使用'静态'值。 我需要使用动态值进行查询:通过URL传递。
此外,我正在使用插件“高级自定义字段”,并添加了一个字段'priority',其中的defult值为'Z'。 我打算在优先级字段中为每个帖子分配一个字母,以便按照“优先级”对页面上的结果进行排序:顶部优先级为“A”的帖子,后面是优先级为“B”的帖子等等上..
答案 0 :(得分: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&tag=XYZ这样的链接,那么$gotten_cat
将具有值“ABC”,而$gotten_tag
将具有值=“XYZ” 。
在某些时候,你需要决定“ABC”是类别slug还是类别id,与标签
现在,如果我们假设ABC是类别id并且XYZ是标签id(如果它是slug,则有两行要添加,其中你通过它的slug获得cat / tag id)代码就像这样:
$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 );
这应该查询来自cat ABC和标签XYZ的帖子,并设置meta_key优先级,帖子将按meta_value(A,B,C ...)升序排序。
请阅读与WP_Query
相关的wp codex页面,您将学习如何使用wordpress查询参数。