0

所以我有一个名为“comics”的页面,它使用一个自定义模板,其中包含我网站中帖子的 WP_query 循环(每页 1 个漫画,带有用于导航的上一个/下一个按钮)。我还有一个存档页面,列出了“漫画”类别中的所有帖子。

默认情况下,存档页面上的链接链接到特定帖子本身,但是如何将其更改为链接到 WP_query 循环中的帖子?

我知道我可以使用 301 重定向插件并为每个帖子添加正确的链接,但我正在为客户这样做,所以如果我能让她的事情变得更容易会更好。

如果你需要知道,这里是comics.php 页面中的WP_query 循环:

<?php 
$comics_loop = new WP_Query(
    array(
        'posts_per_page' => 1,
        'paged' => get_query_var('paged'),
        'category_name' => comics
    )
);

if($comics_loop->have_posts()) :

echo '<ul class="comic-slider-container">';

while($comics_loop->have_posts()) : $comics_loop->the_post();
?>
    <li><h1 id="comic-slider-title" class="page-title">Weekly Comics &nbsp;|&nbsp; <span class="title-alt"><?php the_title(); ?></span>&nbsp;&nbsp; <a href="<?php bloginfo('url') ?>/category/comics/" id="archive-button" class="big-button">Archives</a></h1></li>
    <li><?php the_post_thumbnail( 'full' ); ?></li>

    <li><?php the_content(); ?></li>

    <li><p class="byline vcard">
        <?php
            printf(__('Posted <time class="updated" datetime="%1$s" pubdate>%2$s</time>', 'bonestheme'), get_the_time('Y-m-j'), get_the_time(__('F jS, Y', 'bonestheme')) );
            ?>
        </p>
    </li>
<?php
endwhile;

echo "</ul>";
?>

默认情况下,存档页面的标题链接:

<h3 class="h2"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
4

1 回答 1

0

为了使您的帖子具有该永久链接结构 - 您应该使用自定义分类法

话虽这么说 - 如果您还没有设置一个,这里有一个代码来设置一个漫画。把它放到你的functions.php中

add_action( 'init', 'build_taxonomies', 0 );

    function build_taxonomies() {
        register_taxonomy( 'comics', 'post', array( 'hierarchical' => true, 'label' => 'Comics', 'query_var' => true, 'rewrite' => array( 'slug' => 'comics', 'with_front' => false, 'hierarchical' => true ) ) );
    }

然后回显出链接列表

$terms = get_terms('comics');
echo '<ul>';
foreach ($terms as $term) {
    //Always check if it's an error before continuing. get_term_link() can be finicky sometimes
    $term_link = get_term_link( $term, 'comics' );
    if( is_wp_error( $term_link ) )
        continue;
    //We successfully got a link. Print it out.
    echo '<li><a href="' . $term_link . '">' . $term->name . '</a></li>';
}
echo '</ul>';

根据您的需要进行相应编辑

于 2013-08-07T15:57:35.110 回答