欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Typecho如何单纯输出上一篇和下一篇文章的链接和标题。

程序员文章站 2022-04-08 13:19:58
...
上一篇文章$this->thePrev()
下一篇文章$this->theNext()
输出中包含有a标签,应该如何获取单纯的链接地址 和 文章标题?
是需要修改系统核心还是可以有更简单的方法?

系统核心代码:

public function theNext($format = '%s', $default = NULL, $custom = array())
    {
        $content = $this->db->fetchRow($this->select()->where('table.contents.created > ? AND table.contents.created created, $this->options->gmtTime)
            ->where('table.contents.status = ?', 'publish')
            ->where('table.contents.type = ?', $this->type)
            ->where('table.contents.password IS NULL')
            ->order('table.contents.created', Typecho_Db::SORT_ASC)
            ->limit(1));

        if ($content) {
            $content = $this->filter($content);
            $default = array(
                'title' => NULL,
                'tagClass' => NULL
            );
            $custom = array_merge($default, $custom);
            extract($custom);

            $linkText = empty($title) ? $content['title'] : $title;
            $linkClass = empty($tagClass) ? '' : 'class="' . $tagClass . '" ';
            $link = '' . $linkText . '';

            printf($format, $link);
        } else {
            echo $default;
        }
    }

    public function thePrev($format = '%s', $default = NULL, $custom = array())
    {
        $content = $this->db->fetchRow($this->select()->where('table.contents.created created)
            ->where('table.contents.status = ?', 'publish')
            ->where('table.contents.type = ?', $this->type)
            ->where('table.contents.password IS NULL')
            ->order('table.contents.created', Typecho_Db::SORT_DESC)
            ->limit(1));

        if ($content) {
            $content = $this->filter($content);
            $default = array(
                'title' => NULL,
                'tagClass' => NULL
            );
            $custom = array_merge($default, $custom);
            extract($custom);

            $linkText = empty($title) ? $content['title'] : $title;
            $linkClass = empty($tagClass) ? '' : 'class="' . $tagClass . '" ';
            $link = '' . $linkText . '';

            printf($format, $link);
        } else {
            echo $default;
        }
    }

回复内容:

上一篇文章$this->thePrev()
下一篇文章$this->theNext()
输出中包含有a标签,应该如何获取单纯的链接地址 和 文章标题?
是需要修改系统核心还是可以有更简单的方法?

系统核心代码:

public function theNext($format = '%s', $default = NULL, $custom = array())
    {
        $content = $this->db->fetchRow($this->select()->where('table.contents.created > ? AND table.contents.created created, $this->options->gmtTime)
            ->where('table.contents.status = ?', 'publish')
            ->where('table.contents.type = ?', $this->type)
            ->where('table.contents.password IS NULL')
            ->order('table.contents.created', Typecho_Db::SORT_ASC)
            ->limit(1));

        if ($content) {
            $content = $this->filter($content);
            $default = array(
                'title' => NULL,
                'tagClass' => NULL
            );
            $custom = array_merge($default, $custom);
            extract($custom);

            $linkText = empty($title) ? $content['title'] : $title;
            $linkClass = empty($tagClass) ? '' : 'class="' . $tagClass . '" ';
            $link = '' . $linkText . '';

            printf($format, $link);
        } else {
            echo $default;
        }
    }

    public function thePrev($format = '%s', $default = NULL, $custom = array())
    {
        $content = $this->db->fetchRow($this->select()->where('table.contents.created created)
            ->where('table.contents.status = ?', 'publish')
            ->where('table.contents.type = ?', $this->type)
            ->where('table.contents.password IS NULL')
            ->order('table.contents.created', Typecho_Db::SORT_DESC)
            ->limit(1));

        if ($content) {
            $content = $this->filter($content);
            $default = array(
                'title' => NULL,
                'tagClass' => NULL
            );
            $custom = array_merge($default, $custom);
            extract($custom);

            $linkText = empty($title) ? $content['title'] : $title;
            $linkClass = empty($tagClass) ? '' : 'class="' . $tagClass . '" ';
            $link = '' . $linkText . '';

            printf($format, $link);
        } else {
            echo $default;
        }
    }

估计是要改的了。

实在不适合你的需求的话,可以在 functions.php 文件中重写两个代码。

相关标签: typecho php