2017-04-14 34 views
1

很多文章似乎在处理“更多阅读”链接不显示。我的显示效果很好,但实际上并没有将我们带到显示完整博客文章的页面。你可以看到它是如何显示在这里(阅读更多>>):WordPress的博客帖子“阅读更多”链接没有把我带到实际岗位

enter image description here

现在,当我点击 “更多>>” 我得到这个:

enter image description here

在我代码,在home.php,我显示的博客文章,如:

<?php 
$paged = (get_query_var('page')) ? get_query_var('page') : '1'; 
$args = array('post_type' => 'post', 'posts_per_page' => 3, 'order' => 'ASC', 'orderby' => 'title', 'paged' => $paged); 
$posts = new WP_Query($args); 
if ($posts->have_posts()): while ($posts->have_posts()) : $posts->the_post(); 
    get_template_part('content', get_post_format()); 
    echo "<div class='thepost'><p class='post-date'>".get_the_date()."</p>"; 
    echo "<h2 class='post-title'><a href=".get_permalink().">".get_the_title()."</a></h2>"; 
    //echo "<span class='post-image'>".the_post_thumbnail()."</span>"; 
    the_post_thumbnail('post-thumbnail', ['class' => 'post-image']); 
    echo "<p class='post-paragraph'>".get_the_excerpt()."</p>"; 
    echo "<p><a href=".get_permalink()."><span class='read-more'>Read More >></span></a></p> </div>"; 

    endwhile;?> 

所以我需要什么来改变这个行:echo "<p><a href=".get_permalink()."><span class='read-more'>Read More >></span></a></p></div>";,以便链接到用户点击的完整帖子?

我已经通过the codex看着如何定制更多的链接,但我只是发现

“然后,用户可以继续阅读更多的是你们用自己的概要介绍引诱他们,通过点击链接到完整的文章,主题通常在标题中包含这个链接,上面的方法默认会在你的预告片后面生成它。“

我在阅读食谱时一定会错过一些东西。谢谢!

编辑:检查链接:

enter image description here

EDIT 2检查断页:

enter image description here

编辑3:完整的CSS(style.css中):https://pastebin.com/TaUnemz9

个人博客文章页面编辑4全屏截图:

enter image description here

+0

清关,您阅读更多链接不发送用户到相应的帖子?你可以在这里粘贴网站链接吗? –

+0

@RajKumarBhardwaj我在本地开发,所以我不认为粘贴链接会有所帮助。但是,这是我的问题。 – HappyHands31

+0

据另一位开发人员介绍,我的html没有任何问题。结果页面刚刚破解了CSS。我在上面的编辑中粘贴了一个链接到我的完整CSS。 – HappyHands31

回答

0

首先,关键是单一帖子页根据WordPress Hierarchy通过single.php中显示。

所以我需要创建一个single.php文件 - 该文件的大部分代码仍然与home.php的代码相同 - 它仍然会显示标题,英雄图像,导航菜单,页脚和内容仍将包含在<div>中。

以往不同的是,我需要借这个了:

$paged = (get_query_var('page')) ? get_query_var('page') : '1'; 
$args = array('post_type' => 'post', 'posts_per_page' => 3, 'order' => 'ASC', 'orderby' => 'title', 'paged' => $paged); 
$posts = new WP_Query($args); 

而从这个改变WordPress的循环:if ($posts->have_posts()): while ($posts->have_posts()) : $posts->the_post();本:if (have_posts()): while (have_posts()) : the_post();。我们已经加载了帖子,现在我们只需要显示它们。

无论我需要获取/回显的WP功能,取决于显示单个帖子的方式与显示多个帖子不同。我可以拿出:

 get_template_part('content', get_post_format()); 
     echo "<p class='post-paragraph'>".get_the_excerpt()."</p>"; 
     echo "<p><a href=".get_permalink()."><span class='read-more'>Read More >></span></a></p> </div>"; 

因为我不再需要它们了。

关键是链接在WordPress中的工作方式与基本HTML不同。这不像在HTML中,如果你有<a href="post-page.html">Read More</a>,当你点击阅读更多内容时,你会被带到post-page.html。由于它是WP网站,因此它使用PHP,并使用WP功能.get_permalink().将永久链接包装在<a>标签中。然后永久链接将带你到single.php。

1

三件事首先,我不能告诉你确切没有任何适当的link.but是什么问题,因为我要去通过您的截图密切关注。我发现

你得到的链接像http://localhost/fourth-blog-post 当你点击阅读更多按钮。

,但它应该是这样的http://localhost/blog/fourth-blog-post

因其您所有的帖子一个帖子及其来自的single.php文件, 现在您可以通过管理面板做两件事情您的文章首先检查网址在您帖子出现。第二,如果它匹配我上面链接提到的第二个网址。那么你应该在get_permalink()的地方尝试使用the_permalink()函数以获取更多可以访问的信息。

https://codex.wordpress.org/Function_Reference/the_permalink

因为get_permalink()不应该在循环使用。它应该是循环中的the_permalink()。

我希望它会帮助你:)

+0

是的,我将我的代码从home.php(博客页面)复制并粘贴到single.php中,但我的问题仍然是链接。 “Read More”链接 - 该页面的URL看起来像“http:// localhost/hello-world /'。我不知道为什么它会“hello-world”,而不是“http:// localhost/blog/fourth-blog-post”。请参阅上面的编辑,了解该页面的完整屏幕截图。您还会注意到它显示了所有博客文章。所以这意味着在single.php中的某处,我需要进行调整,以便只显示选定的帖子。这里是我的single.php文件的链接:https://pastebin.com/7LkJN6TY – HappyHands31

+1

让我检查一下,给我一些时间,我会回到你身边。 –

+1

Bro代码不工作,因为在第一次你评论了第一行的while循环。 8 // while(have_posts()):the_post();删除doble斜线,你不需要single.php文件中的自定义查询,因为它需要默认循环,并且在single.php上只能得到一个帖子。你为什么要单独添加自定义查询。php文件 –

相关问题