使用自定义字段过滤WordPress帖子

时间:2015-08-27 16:34:04

标签: php wordpress custom-fields

我想了解使用自定义字段过滤特定类别帖子的方法是什么。我想要的结果与表here完全相同 。我创建了一个这样的列表,在表格单元格中,我插入了三个不同的自定义字段,每个字段包含许多值。如何使用下拉菜单中使用与福布斯杂志和过滤帖子列表相同的结构?

3 个答案:

答案 0 :(得分:1)

我认为这个文档很清楚https://codex.wordpress.org/Class_Reference/WP_Meta_Query

但是我不太确定你要求的是什么。 你想通过自定义字段过滤HTML输出或wordpress数据库吗?

顺便说一句,如果你想过滤html输出,那么使用jQuery,我习惯使用data-attribute过滤表格行中的2000列表;

以下是jQuery文档,https://api.jquery.com/category/selectors/

如果要使用元值过滤和重新排序wordpress表 订购按元值

    $args = [
        'meta_key' => '*meta_keyword*',
        'orderby' => 'meta_value',
        'order' => 'ASC'
    ];

meta_keyword 需要根据你的meta_key进行更改,你可以按照每种类型的值,Date,int等对它们进行排序

过滤表格

$args['meta_query'] = [
    [
        'key' => 'meta_key',
        'value' => 'filter_value',
        'type' => 'str*',
        'compare' => '=*'
    ]
];
  • ' *'取决于值类型和逻辑

这里有一些信息 https://wordpress.stackexchange.com/questions/30241/wp-query-order-results-by-meta-value 另一个答案 https://stackoverflow.com/a/24253081/3392555

答案 1 :(得分:0)

请在我的博客上找到类似的示例。在这里,我使用自定义字段和类别名称进行过滤,并在主页中将其显示为块。

http://www.pearlbells.co.uk/filter-posts-custom-fields-wp_query/

public class Parent
{
    public List<Child> Children { get; protected set; }

    public void AddChild(Child child)
    {
        Children.Add(child);
        child.Parent = this;
    }

    public void RemoveChild(Child child)
    {
        Children.Remove(child);
        child.Parent = null;
    }
}

答案 2 :(得分:0)

自定义帖子类型名称=软件, 自定义字段名称=版本元

此编码在single.php上完成。 $ version用于调用single.php上的自定义字段值,并按自定义字段值过滤数据。

<?php $args = array('post_type' => 'software', 'showposts'=>'4', 'category_name' => '', 'orderby'   => '','meta_query' => array(array('key' => 'version_meta','value' => $version = get_post_meta($post->ID, 'version_meta', true))));
       $loop = new WP_Query( $args );
       while ( $loop->have_posts() ) : $loop->the_post();?>
        <div class="post_desc">
            <div class="thumb thmbhome3">
                <?php the_post_thumbnail();?>
            </div>
            <div class="title_des edu tthome3">
                <div class="title edu_titl ttshome3">
                    <h1><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h1>
                </div>
            </div>

        </div>

    <?php endwhile; ?>