嗨,我有这个,我不知道我错在哪里我不是一个php编码器,但我觉得有帮助可以工作
add_action('init', 'set_index_var');
function set_index_var()
{
global $azindex;
$tmp = get_query_var('azindex');
if($tmp != "")
$azindex = $tmp;
}
//Add WHERE addition to query
add_filter( 'posts_where' , 'azindex_posts_where',10,2 );
function azindex_posts_where( $where, &$wp_query) {
global $wpdb;
global $azindex;
//global $azindextype;
//var_dump($wpdb);
if(isset($azindex) )
$where .= " AND {$wpdb->posts}.post_title LIKE '{$azindex}%' ";
return $where;
}
/********************************************************************/
/* FILTERS */
/********************************************************************/
// Add the query var azindex so WP won't drop it
add_filter( 'query_vars', 'azindex_add_query_vars');
function azindex_add_query_vars($vars){
$vars[] = "azindex";
return $vars;
}
/********************************************************************/
/* MAIN CODE */
/********************************************************************/
function azindex_get_alphabetical_index( )
{
$azindex = get_query_var('azindex');
if($azindex == '')
$azindex = -1;
$base_url = get_permalink(get_the_ID());
for($i=0;$i<26;$i++)
{
$letter[$i] = chr($i + 65);
$href = $base_url.'index.php?azindex='.$letter[$i];
$base_add = '';
if($azindex == "") //Not selected -> link
echo '<div><a href="'.$href.'">'.$letter[$i].'</a></div>';
else if($azindex == $letter[$i])
echo '<div class="selected" >'.$letter[$i].'</div>';
else
echo '<div><a href="'.$href.'">'.$letter[$i].'</a></div>';
}
if($azindex == -1)
echo '<div class="all" >All</div>';
else
echo '<div><a href="'.$base_url.'">All</a></div>';
}
我可以在索引上显示字母分页,但是当我点击字母时,它总是将我发送到新的帖子单页。 反正是保留索引并显示选定的字母帖子而不是单页?
答案 0 :(得分:0)
现在我将该代码改为:
//Register the NUMERIC Index shortcode [numindex]
$numindex = '';
add_shortcode('numindex','numindex_get_filter');
function numindex_get_filter($attr){
echo '<div class="numindex clearfix">';
numindex_get_numeric_index();
echo '</div>';
}
/********************************************************************/
/* ACTIONS */
/********************************************************************/
//Add WHERE addition to query
add_filter( 'posts_where' , 'numindex_posts_where',10,2 );
function numindex_posts_where( $where, &$wp_query) {
global $wpdb;
global $numindex;
//global $numindextype;
//var_dump($wpdb);
if(isset($numindex) )
$where .= " AND $wpdb->posts.post_title REGEXP '^[0-9]{1,10}' ";
return $where;
}
/********************************************************************/
/* FILTERS */
/********************************************************************/
// Add the query var numindex so WP won't drop it
add_filter( 'query_vars', 'numindex_add_query_vars');
function numindex_add_query_vars($vars){
$vars[] = "numindex";
return $vars;
}
/********************************************************************/
/* MAIN CODE */
/********************************************************************/
function numindex_get_numeric_index( )
{
$numindex = get_query_var('numindex');
if($numindex == '')
$numindex = -1;
$base_url = get_site_url();
for($i=0;$i<26;$i++)
{
$letter[$i] = chr($i + 65);
$href = $base_url.'/index.php?numindex='.$letter[$i];
$base_add = '';
if($numindex == "") //Not selected -> link
echo '<div><a href="'.$href.'">'.$letter[$i].'</a></div>';
else if($numindex == $letter[$i])
echo '<div class="selected" >'.$letter[$i].'</div>';
else
echo '<div><a href="'.$href.'">'.$letter[$i].'</a></div>';
}
if($numindex == -1)
echo '<div class="all" >test</div>';
else
echo '<div><a href="'.$base_url.'">test</a></div>';
}
它列出了我所有的数字标题帖,但现在我可以将#charachter作为链接:)它显示我所有的字母。而不是字母表我想只显示一个链接为0-9或#