2
我有自定義帖子類型「soto_property」。我已經根據使用的名爲「operations」的元數據製作了一個自定義過濾器來過濾帖子列表。這是我的代碼 -自定義過濾器功能不適用於自定義帖子類型
<?php
add_filter('parse_query', 'soto_posts_filter');
add_action('restrict_manage_posts', 'soto_posts_filter_restrict_manage_posts');
function soto_posts_filter($query)
{
global $pagenow;
if(is_admin() AND $query->query['post_type'] == 'soto_property') {
$qv = &$query->query_vars;
$qv['meta_query'] = array();
if(!empty($_GET['operations'])) {
$qv['meta_query'][] = array(
'field' => 'operations',
'value' => $_GET['operations'],
'compare' => 'LIKE',
);
}
}
}
function soto_posts_filter_restrict_manage_posts()
{
global $wpdb;
if($_GET['post_type']=='soto_property')
{
$sql = 'SELECT DISTINCT meta_key FROM '.$wpdb->postmeta.' where meta_key="operations" ORDER BY 1';
$fields = $wpdb->get_results($sql, ARRAY_N);
?>
<select name="operations" id="filter-operations" class="custom-filter" style="display:none; width: 15%;" >
<option value=""></option>
<option value="2" <?php echo $_GET['operations']==2?"selected='selected'":'' ?>>Rent</option>
<option value="1" <?php echo $_GET['operations']==1?"selected='selected'":'' ?>>Sale</option>
</select>
<?php
}
}
但我的文章沒有根據元數據「操作」過濾。 此元數據存儲在wp_postmeta
DB表中,其中meta_key=operation
和meta_value=1
或meta_value=2
。
任何人都可以幫助我。
請注意,使用從$ _GET和$ _POST獲得的值而不消毒它們是很危險的。你可能想檢查:http://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data – Maxime