永久链接在WordPress类别下拉菜单ajax中未按预期工作


Permalink not working as expected in wordpress category dropdown ajax

这是我的php代码:

define('WP_USE_THEMES', false);
require_once('../../../wp-load.php');
$post_type = $_GET['posts_type'];
$name = $_GET['name'];
$pageNum = $_GET['num_page'];
switch($post_type){
    case "category":
        getCategoryPosts($pageNum, $name);
        break;
}
function getCategoryPosts($p, $n){
    query_posts('posts_per_page=5&paged='.$p.'&cat='.$n);
    if(have_posts()){
        echo "<ul class='category-dropdown-posts'>";
            while(have_posts()){
                the_post();
                $permalink = get_the_permalink();
                echo "<li><a href=".$permalink.">";
                echo get_the_post_thumbnail($post->ID, array(172, 132), array('class'=>'dropdown-pic'));
                echo "<p class='dropdown-title'>".get_the_title();
                echo "</p></a></li>";
            }
        echo "</ul>";
    }
    wp_reset_query();
}

现在一切都工作正常,除了永久链接。如您所见,a 标签应该包裹在 img 和 p 标签周围,但我得到的是这样的:

<li>
<a href="..."></a>
<img ..../>
<p>...</p>
</li>

知道可能出了什么问题吗?

编辑:控制台.log的ajax响应似乎是正确的,但显示混乱。我在 Ubuntu 的虚拟机中使用 Firefox。编辑 2:下面是 ajax 响应:

<ul class='category-dropdown-posts'><li><a style='display:block' href=http://localhost/wordpress/post-to-post/><img width="172" height="114" src="http://localhost/wordpress/wp-content/uploads/2014/12/post-to-post-300x199.jpg" class="dropdown-pic wp-post-image" alt="Post To Post" /><span class='dropdown-title'>Post to Post</span></a></li></ul>

我已经找到了问题所在。如您所见,a 中的 href 没有被引用,这导致了行为。谢谢你们的帮助。

锚元素不应包含段落元素。从技术上讲,这在HTML5中是允许的,但某些浏览器可能无法正确处理它。我的猜测是,您正在浏览器的开发工具中查看源代码,并且在遇到段落时会自动关闭锚点。如果是这种情况,查看实际源应显示按预期格式的 HTML,即使它呈现为锚点提前关闭。尝试将锚点放置在段落内或将锚点的显示属性设置为阻止。更多信息:

可以在 标记中标记吗?