永久链接在wordpress类别下拉列表ajax中没有按预期工作

时间:2015-01-10 04:20:40

标签: php ajax wordpress

这是我的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>

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

编辑:ajax响应的console.log似乎是正确的,但显示是混乱的。我在虚拟机中使用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,这会导致该行为。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

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

Can a <p> tag in <a> tag?