此代码使用URL中的最后一个字母搜索以该特定字母开头的所有帖子。所以我的网站。com/a将返回所有以字母“a”开头的帖子。为了使其正常工作,我建议为字母表中的每个字母创建一个类别。
下面是几段代码的组合。
首先,您需要获取您所在页面的当前URL。幸亏Stephen Harris, 下面的代码就可以做到这一点
$current_url = home_url(add_query_arg(array(),$wp->request));
其次,现在您有了当前的URL,您需要去掉最后一个URL之前的所有内容
/
把信留着就行了。幸亏
DisgruntledGoat$id = substr( $current_url, strrpos( $current_url, \'/\' )+1 );
好了,现在您已经有了最后一封信,您需要将其返回到查询中,以获取所有以该信开头的帖子。再次感谢前往
21zna9$request = $id;
$results = $wpdb->get_results(
"
SELECT * FROM $wpdb->posts
WHERE post_title LIKE \'$request%\'
AND post_type = \'post\'
AND post_status = \'publish\';
"
);
现在,将所有内容放入一个工作查询中。
<ul class="posts">
<?php
global $wpdb, $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));
$id = substr( $current_url, strrpos( $current_url, \'/\' )+1 );
$request = $id;
$results = $wpdb->get_results(
"
SELECT * FROM $wpdb->posts
WHERE post_title LIKE \'$request%\'
AND post_type = \'post\'
AND post_status = \'publish\';
"
);
if ( $results ) {
foreach ( $results as $post ) {
setup_postdata ( $post ); ?>
<li>
<?php get_template_part( \'content\', get_post_format() ); ?>
</li>
<?php
}
} else { ?>
<div class="alert">No posts found for this particular letter.</div>
<?php } ?>
</ul>
您只需要修改循环的输出以满足您的需要。上面的代码将让您大致了解如何操作