如何更正不正确的永久链接?

时间:2017-07-04 作者:Daniel

我在WordPress中开发了一个网站,您可以单击特色图片和特色图片的标题,它会将您带到相应的页面,就像您单击导航项目一样:

enter image description here

这是使用自定义帖子类型UI完成的,我称之为快速链接:

enter image description here

我想我可能把这件事弄得比需要的更复杂了,因为当你点击其中一张图片或标题时,永久链接会把你带到yousite。com/快速链接/新闻,而不仅仅是你的网站。com/新闻

我不确定我是否应该直接删除自定义的帖子类型UI,这个页面的源代码就是主页上的这个。php:

<?php
/*
   Template Name: Home Page
*/

   // Advanced Custom Fields
   $quick_links_title   = get_field(\'quick_links_title\');

get_header(); ?>

   <?php get_template_part(\'content\',\'hero\'); ?>

   <?php get_template_part(\'content\',\'donate\'); ?>

      <div class="container-fluid">
         <div class="row">
            <div class="col-md-8">
               <div class="panel panel-default">
                  <div class="panel-heading">
                     <h3 class="panel-title">Welcome to Three Green Birds!</h3>
                  </div><!-- panel-heading -->
                  <div class="panel-body">


                           <?php if (have_posts()) : ?>

                           <?php while (have_posts()) : the_post(); ?>


                              <!--<div class="spacer"></div>-->
                            <div class="post-title">
                     <?php if (function_exists(\'get_cat_icon\')) get_cat_icon(\'class=myicons\'); ?><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></div>
                              <div class="spacer"></div>
                              <div class="post-content">
                              <?php the_content(\'Read the rest of this entry &raquo;\'); ?>
                              </div>
                              <div class="spacer"></div>    
                              <div class="post-footer"></div>

                              <?php endwhile; ?>

                           <div class="navigation">
                           <br/><br/>
                              <div class="alignleft"><?php next_posts_link(\'&laquo; Older Entries\') ?></div>
                              <div class="alignright"><?php previous_posts_link(\'Newer Entries &raquo;\') ?></div>
                           </div>

                        <?php else : ?>

                           <div class="post-title">Not Found</div>
                           <p class="post-content">Sorry, but you are looking for something that isn\'t here.</p>
                           <?php include (TEMPLATEPATH . "/searchform.php"); ?>

                        <?php endif; ?>


                        <!-- Quick Links
                        ======================================================== -->
                        <section id="quick-links">
                           <div class="container">
                              <h2><?php echo $quick_links_title; ?></h2>
                              <div class="row">

                                 <?php $loop = new WP_Query(array(\'post_type\' => \'quick_links\', \'orderby\' => \'post_id\', \'order\' => \'ASC\')); ?>
                                 <?php while($loop->have_posts()) : $loop->the_post(); ?>

                                 <div class="col-sm-3">

                                    <a href="<?php echo the_permalink(); ?>"><?php 

                                       if(has_post_thumbnail()) {
                                          the_post_thumbnail();
                                       }

                                    ?></a>

                                    <a href="<?php echo the_permalink(); ?>"><h3><?php the_title(); ?></h3></a>
                                    <p><?php the_content(); ?></p>
                                 </div><!-- end col -->
                                 <?php endwhile; ?><!-- end of the loop -->
                                 <?php wp_reset_postdata(); ?>
                              </div><!-- row -->
                           </div><!-- container -->
                        </section><!-- quick-links -->

                  </div><!-- panel-body -->
               </div><!-- panel panel-default -->
            </div><!-- col-md-8 -->
            <!-- SIDEBAR 
               ====================================================================== -->
            <div class="col-md-4">
               <?php if (is_active_sidebar(\'sidebar\')) : ?>
                  <?php dynamic_sidebar(\'sidebar\'); ?>
               <?php endif; ?>
            </div><!-- col-md-4 -->
         </div><!-- row -->
      </div><!-- container-fluid -->

<?php get_sidebar(); ?>

<?php get_footer(); ?>
如果我要删除自定义帖子类型UI,我是否仍然可以使用上面的代码让浏览器呈现您在上面看到的内容,尽管快速链接标题是一个变量,所以我不确定如果我不再使用快速链接自定义帖子类型,会出现这种情况。

因此,我只想让用户点击新闻图片或文本,并将用户带到mysite。com/news,而不是mysite。com/快速链接/新闻。

我认为问题在于:

<?php $loop = new WP_Query(array(\'post_type\' => \'quick_links\', \'orderby\' => \'post_id\', \'order\' => \'ASC\')); ?> 
我得到了我的网站。com/快速链接/新闻,当我将鼠标悬停在特色图片和特色图片的标题上时,但我只想将其转到mysite。com/news,就好像我在单击导航菜单中的新闻项一样。所以我所做的就是编辑我正在使用的$循环,这样网站就不再显示mysite了。com/快速链接/新闻,但仅限于mysite。com/新闻。我将$循环更改为:

<?php $loop = new WP_Query(array(\'post_type\' => \'quick_links\', \'orderby\' => \'post_id\', \'order\' => \'ASC\')); ?> 

<?php $loop = new WP_Query(array(\'post_type\' => \'page\', \'orderby\' => \'post_id\', \'order\' => \'ASC\')); ?> 
但现在主页的快速链接部分希望显示所有页面,而不仅仅是新闻,关于我们和参与。关于如何只查询这三个特定页面有什么想法吗?

2 个回复
最合适的回答,由SO网友:Daniel 整理而成

我了解到,在WP查询中,我必须指定页面,而不是自定义帖子类型的quick\\u链接。事实上,我完全删除了自定义帖子类型UI和插件。这完全没有必要。

我不想看到关于我们的每一个页面,只想看到关于我们的新闻,所以我研究了是否有办法抓取特定的页面,即那些具有特色图像且顺序正确的页面,并且根据我在网上找到的信息,我能够拼凑出以下代码:

<?php $loop = new WP_Query(array(\'post_type\' => \'page\', \'meta_key\' => \'_thumbnail_id\', \'order\' => \'asc\')); ?>
它的工作原理是:

enter image description here

SO网友:Regolith

首先,您正在使用echo the_permalink()

<a href="<?php echo the_permalink(); ?>"><?php 
  if(has_post_thumbnail()) {
  the_post_thumbnail();
  }
?></a>
你不必呼应permalink

<a href="<?php the_permalink(); ?>"><?php 
  if(has_post_thumbnail()) {
  the_post_thumbnail();
  }
?></a>
仔细阅读https://codex.wordpress.org/Using_Permalinks wordpress网站中的codex部分

如果在页面中使用多个循环,也可以使用wp_reset_query(); 循环之后或之前。并确保查看您的查询参数。例如:
之后的内容查询在哪里<h3 class="panel-title">Welcome to Three Green Birds!</h3>.
引用来自的wp查询WP_Queryquery_posts

结束

相关推荐

Change Taxonomy Permalinks

我有自定义帖子,我创建了一个显示所有自定义帖子的页面。示例:www.example.com/archive-page我想知道是否可以更改与此自定义帖子相关的类别和标签的永久链接。现在我有:www.example.com/my-custom-post-type-cats/my-category-1www.example.com/my-custom-post-type-tags/my-tag-1</我想要这样的东西:www.example.com/archive-page?category=1www.e