别名如何调用

okmad2024-09-02  399

请教,

<?php
$arrlist_down = db_find('website_thread',array('tid'=>array('>'=>$tid-13),'tid'=>array('<='=>$tid)),array('tid'=>-1));
?>
	<div class="widget-article-newest"><span>聚合阅读</span></div>
	<ul class="posts-widget">
		<?php foreach ($arrlist_down as $_downthrad) { ?>
		<li>
			<div class="widget-posts-text"><a class="widget-posts-title" href="<?php echo http_url_path().url('read-'.$_downthrad['tid']);?>"
				 title="<?php echo $_downthrad['subject'];?>"><i class="fa fa-angle-right"></i>
					<?php echo $_downthrad['subject'];?></a>
				<div class="widget-posts-meta"><i>
						<?php echo $_downthrad['posts'];?> 评论</i></div>
			</div>
		</li>
		<?php $_downthrad['tid']-=1;?>
		<?php } ?>

用的伪静态类型是3:/user/login,并为每个目录设置了别名,列表页的链接都是正常的,

上面代码是侧边栏的调用,其中的
            href="<?php echo http_url_path().url('read-'.$_downthrad['tid']);?>"
前台链接会显示 https://www.wellcmsxxx.net/read/123,而不是 https://www.wellcmsxxx.net/目录别名/123。

这个需要修改 read- 吗?谢谢!

转载请注明原文地址:http://www.wellcms.net/read-804.html
00
最新回复(8)
  • 引用2置顶

    函數 well_thread_format() 負責對 thread 進行格式化以方便後期調用

    找到 $thread['url'] = url('read-' . $thread['tid'], '', FALSE);
    下方有鈎子    // hook model__thread_format_center.php
    把鈎子的内容更新為你想要的格式 

    $thread['url'] = url($thread['forum_url'] .  '-' . $thread['tid'], '', FALSE);  

    需要注意的是 $thread['forum_url'] 值可能會是 "/xxx" 記得處理掉 / 

     

    或者 

     
    $thread['url'] = $thread['forum_url'] . '/' . $thread['tid'];
    回复41

    • 燃烧的冰
      2024-09-02 21:26:04
      @qcfgpp这是正解!

    • 燃烧的冰
      2024-09-02 21:42:39
      @qcfgpp直接到 foreach 代码中加 well_thread_format($thread); 直接输出就可以了,记得 $thread 改成 $_downthrad 如 well_thread_format($_downthrad); 这是你循环中代码。

    • okmad作者
      2024-09-02 22:26:17
      @qcfgpp用 解决了,多谢各位大佬不吝指导!

    • okmad作者
      2024-09-02 22:27:16
      @qcfgpp 用这个代码解决了,多谢各位大佬不吝指导!

  • 試試這個 $_downthrad['url']

    或者把數據打印出來就更直觀了,

     

    var_dump($_downthrad); 

     

    看看哪個 key 含有別名的鏈接

     

    回复00
  • 将<?php echo http_url_path().url('read-'.$_downthrad['tid']);?>改为<?php echo $_downthrad['url'];?>后,显示的是当前内容页的url,而其他文件中都没找到含别名的链接。只有这个内容页的侧边栏有问题,愁死。
    用的是这个主题:https://www.wellcms.cn/read-209.html
    回复00
  • okmad 将&lt;?php&nbsp;echo&nbsp;http_url_path().url(&#039;read-&#039;.$_downthrad[& ...

     

    你按照这个添加一下 flagid6和4的就好了

    回复00
  • flagid6和4都是首页的侧边栏,不是内容页的
    回复00
  • <?php echo http_url_path().url($thread['forum_url'] .  '-' . $_downthrad['tid'], '', FALSE);?>
    用这个代码解决了,多谢各位大佬不吝指导!
    回复00
  • 有个很奇怪的问题,就是链接
    https://www.wellcmsxxx.net/fenlei/123

    https://www.wellcmsxxx.net/read/123,都可以访问。这样对SEO有影响吗?
    回复10

    • 燃烧的冰
      2024-09-03 08:37:35
      @okmad你不去输出这样的链接,搜索引擎不会创造链接

  • 把以下代碼放入鈎子 // hook read_status_before.php 中

    $forum_url_read = str_replace('/', '', $thread['forum_url']);
    
    if ( param(0) != $forum_url_read) {
        if ('1' == _GET('ajax')) {
            message(-2, lang('forum_not_exists'));
        } else {
            header('HTTP/1.1 404 Not Found');
            header('Status: 404 Not Found');
            include _include(theme_load('read_404'));
            exit;
        }
    }

    以實現

    訪問 /fenlei/tid 正常

    訪問 /read/tid 返回 404

     

    注意: 根據你自己的模板和插件進行修改,或許還會有其它問題。

    回复10