WordPress 博客 Post "Read More" Link 不带我去实际 Post

WordPress Blog Post "Read More" Link Not Taking Me To Actual Post

这里很多文章好像都是针对"read more" link不显示的。我的显示正常,只是没有真正将我们带到显示完整博客的页面 post。您可以在此处查看它的显示方式(阅读更多 >>):

现在,当我点击 "Read More >>" 时,我得到了这个:

在我的代码中,在 home.php 中,我将博客 post 显示为:

<?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>"; 以便它 link 成为用户点击的完整 post?

我查看了 the codex 如何自定义阅读更多 link,但我只是找到

"Users can then continue reading more as you have enticed them with your summary introduction, by clicking on a link to the full article. Themes usually include this link in the title and the above methods will generate it by default trailing your teaser."

我一定是在阅读手抄本时遗漏了什么。谢谢!

编辑:检查link:

编辑 2 检查损坏的页面:

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

编辑 4 个人博客的完整屏幕截图 post 页面:

首先有三件事我不能告诉你确切的问题是什么,没有任何适当的 link.but 因为我仔细研究了你的 screenshot.I 发现

你 link 喜欢 http://localhost/fourth-blog-post 当您单击阅读更多按钮时。

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

因为它是您所有 post 中的单个 post,并且来自 single.php 文件, 现在您可以做两件事,首先通过显示您的 post 的管理面板检查 post 的 url。第二,如果它匹配我在上面提到的第二个 url link。那么您应该在 get_permalink() 的位置尝试 the_permalink() 函数,以获取您可以访问的更多信息。

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

因为 get_permalink() 不应与 in 循环一起使用。它应该是 the_permalink() 在循环中。

希望对你有所帮助:)

首先,关键是单个post页面根据WordPress Hierarchy通过single.php显示。

所以我需要创建一个 single.php 文件 - 这个文件的大部分代码仍然与 home.php 的代码相同 - 它仍然会显示 header、主图、导航菜单、页脚和内容仍将包含在 <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();。我们已经加载了 posts,现在我们只需要显示它们。

我需要获取/回显的任何 WP 函数都会根据显示单个 post 与显示多个 post 的不同而发生变化。我可以拿出来:

        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。