对于某些页面ID,get_permalink()返回空

时间:2013-06-13 07:41:15

标签: wordpress permalinks

<ul class="stageList2">
    <li><a class="sel">Stage 1</a></li>
    <li><a href="<?php echo get_permalink(1030); ?>">Stage 2</a></li>
    <li><a href="<?php echo get_permalink(1032); ?>">Stage 3</a></li>
    <li><a href="<?php echo get_permalink(1034); ?>">Stage 4</a></li>
    <li><a href="<?php echo get_permalink(1036); ?>">Stage 5</a></li>
    <li><a href="<?php echo get_permalink(1038); ?>">Stage 6</a></li>
    <li><a href="<?php echo get_permalink(1040); ?>">Stage 7</a></li>
    <li><a href="<?php echo get_permalink(1042); ?>">Stage 8</a></li>
    <li><a href="<?php echo get_permalink(1044); ?>">Stage 9a</a></li>
    <li><a href="<?php echo get_permalink(1046); ?>">Stage 9b</a></li>
</ul>

<ul class="stageList2">
    <li><a href="<?php echo get_permalink(1048); ?>">Stage 10</a></li>
    <li><a href="<?php echo get_permalink(1050); ?>">Stage 11</a></li>
    <li><a href="<?php echo get_permalink(1052); ?>">Stage 12</a></li>
    <li><a href="<?php echo get_permalink(1054); ?>">Stage 13</a></li>
    <li><a href="<?php echo get_permalink(1056); ?>">Golf Stage 1</a></li>
    <li><a href="<?php echo get_permalink(1058); ?>">Golf Stage 2</a></li>
    <li><a href="<?php echo get_permalink(1060); ?>">Golf Stage 3</a></li>
    <li><a href="<?php echo get_permalink(1062); ?>">Golf Stage 4</a></li>
    <li><a href="<?php echo get_permalink(1064); ?>">Golf Stage 5</a></li>
    <li><a href="<?php echo get_permalink(1066); ?>">Golf Stage 6</a></li>

我在页面的一部分上有这段代码。我试图获取这些特定页面的永久链接,但它什么都不返回,链接的href属性为空。如果我使用的是除此处列出的ID以外的其他ID,则永久链接将被正常返回。此外,如果我使用这些ID在网站的另一部分上获得固定链接,那么它也可以返回。这个页面模板的这个特定部分和这些特定的页面ID有些东西不允许我返回永久链接。

以前有没有人经历过这样的事情?是否可以修复某种错误?

我已将整个WordPress网站移至新服务器,这些永久链接在其他服务器上完全正常运行。我还禁用了我的所有插件,看看是否有任何错误,但它仍然无效。

干杯, 贾斯汀

1 个答案:

答案 0 :(得分:0)

当您将网站移动到新服务器时,很可能根据您在新主机中执行迁移甚至数据库配置的方式更改了ID。我总是试图避免在模板上使用id。它们不适合阅读代码。您可以从标题中获取ID。像这样:

get_permalink( get_page_by_title( 'Monthly Events' ) );

函数get_page_by_title会为您提供页面或帖子的ID。更好的方法是使用类别,然后使用循环和query_posts迭代类别。

与您有关的问题。首先,检查数据库(如果我没有错,表wp_posts),如果存在这些数字(ids)。我打赌不是。如果没有,您可以使用任何数据库管理器(如phpmyadmin)导入和导出数据库,而无需使用wordpress导入/导出插件。