Wordpress 替代 URL 存档页面
Wordpress alternative URL to archive page
我有一个名为 myalbums
的自定义 post 类型,因此要存档的 url 页面是 http://mysite/gallery
(我在创建时添加了 'rewrite' => ['slug' => 'gallery']
) .
所以,我想有一个替代 URL 像 http://mysite/gallery/special
来查看相同的页面,但有一点过滤器。在一个页面上您可以看到一些相册,在另一个页面上您可以看到其他相册。
我该怎么做,我怎么知道用户何时使用其中之一?
PS。我使用 Timber Wordpress
创建页面模板并使用 WP_Query 来 return 该页面上的自定义帖子。然后,您可以将 AJAX 过滤器添加到 hide/show 个帖子。我不会为您编写完整的代码,但这里是 WP_QUERY 文档的开始,以显示您的帖子。
// The Query returns all custom posts
$the_query = new WP_Query( 'post_type' => 'myalbums', 'posts_per_page' => -1 );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
}
我只是像这样重写 api:
add_filter('query_vars', 'add_query_vars');
function add_query_vars($aVars) {
$aVars[] = "my-var";
return $aVars;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
function add_rewrite_rules($aRules) {
$aNewRules = array('gallery/special/([^/]+)/?$' => 'index.php?post_type=myalbums&my-var=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
无法访问 http://mysite/gallery/special/anything
此请求转到 archive.php
文件,我只需调用 $wp_query->query_vars['my-var']
.
即可获得 var
我有一个名为 myalbums
的自定义 post 类型,因此要存档的 url 页面是 http://mysite/gallery
(我在创建时添加了 'rewrite' => ['slug' => 'gallery']
) .
所以,我想有一个替代 URL 像 http://mysite/gallery/special
来查看相同的页面,但有一点过滤器。在一个页面上您可以看到一些相册,在另一个页面上您可以看到其他相册。
我该怎么做,我怎么知道用户何时使用其中之一?
PS。我使用 Timber Wordpress
创建页面模板并使用 WP_Query 来 return 该页面上的自定义帖子。然后,您可以将 AJAX 过滤器添加到 hide/show 个帖子。我不会为您编写完整的代码,但这里是 WP_QUERY 文档的开始,以显示您的帖子。
// The Query returns all custom posts
$the_query = new WP_Query( 'post_type' => 'myalbums', 'posts_per_page' => -1 );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
} else {
// no posts found
}
我只是像这样重写 api:
add_filter('query_vars', 'add_query_vars');
function add_query_vars($aVars) {
$aVars[] = "my-var";
return $aVars;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
function add_rewrite_rules($aRules) {
$aNewRules = array('gallery/special/([^/]+)/?$' => 'index.php?post_type=myalbums&my-var=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
无法访问 http://mysite/gallery/special/anything
此请求转到 archive.php
文件,我只需调用 $wp_query->query_vars['my-var']
.