WordPress博客文章"阅读更多"链接没有带我到实际发布

时间:2017-04-14 03:40:56

标签: php wordpress posts custom-wordpress-pages

这里的很多文章似乎都在处理"阅读更多"链接不显示。我的显示很好,它实际上并没有把我们带到显示完整博客帖子的页面。您可以在此处查看它的显示方式(阅读更多>>):

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如何自定义阅读更多链接,但我只是找到了

&#34;用户可以继续阅读更多内容,因为您通过点击完整文章的链接来吸引他们的摘要介绍。主题通常在标题中包含此链接,上述方法将默认生成它跟踪您的预告片。&#34;

我必须错过一些东西,因为我正在阅读手抄本。谢谢!

编辑:检查链接:

enter image description here

编辑2 检查已损坏的网页:

enter image description here

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

EDIT 4 个人博客帖子页面的完整屏幕截图:

enter image description here

2 个答案:

答案 0 :(得分:1)

首先,我可以在没有任何正确链接的情况下告诉您确切的问题,但有三件事情。但是我正在密切关注您的截图。我发现

您获得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()不应该与in循环一起使用。它应该是循环中的_permalink()。

我希望它会对你有所帮助:)。

答案 1 :(得分: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函数<a>将永久链接包装在.get_permalink().标记中。然后固定链接会将您带到single.php。