【问题标题】:Codeigniter blog application: target the single post view from another viewCodeigniter 博客应用程序:从另一个视图定位单个帖子视图
【发布时间】:2019-03-25 22:58:14
【问题描述】:

我正在使用 Codeigniter 3.1.8 和 Bootstrap 4 开发一个基本的博客应用程序

我已将 Facebook 的开放图形元标记添加到网站的标题中。

<meta property="og:image" content="<?php echo base_url('assets/img/posts/' . $post->post_image); ?>"> 行仅适用于单个帖子。

问题在于,由于 header 视图对网站中的所有页面 (URL) 都是通用的,因此我需要使用以下 if 语句来定位单个帖子视图:if Posts 控制器和单个帖子页面.

或者,或者,如果是单张贴路线。

考虑到 Posts 控制器中的单个 post 方法是:

public function post($slug) {
    $data = $this->Static_model->get_static_data();
    $data['pages'] = $this->Pages_model->get_pages();
    $data['categories'] = $this->Categories_model->get_categories();
    $data['posts'] = $this->Posts_model->sidebar_posts($limit=5, $offset=0);
    $data['post'] = $this->Posts_model->get_post($slug);

    if ($data['categories']) {
        foreach ($data['categories'] as &$category) {
            $category->posts_count = $this->Posts_model->count_posts_in_category($category->id);
        }
    }

    if (!empty($data['post'])) {
        // Overwrite the default tagline with the post title
        $data['tagline'] = $data['post']->title;

        // Get post comments
        $post_id = $data['post']->id;
        $data['comments'] = $this->Comments_model->get_comments($post_id);

        $this->load->view('partials/header', $data);
        $this->load->view('post');
    } else {
        $data['tagline'] = "Page not found";
        $this->load->view('partials/header', $data);
        $this->load->view('404');
    }
    $this->load->view('partials/footer');
}

针对单个帖子视图的最佳方法是什么?

【问题讨论】:

  • 您回答了自己的问题。在标题视图中添加 if 语句
  • @Alex An that if 语句可以是 if what,在代码方面。我不知道如何在...代码中“翻译”if single post
  • 它会在视野中if (isset($post->post_image))

标签: php codeigniter


【解决方案1】:
if (isset($post->post_image)) {
    // og image
}

因为图像将(或看起来)仅在单个帖子时可用。

类似地,您可以添加一个类似$data['single_post'] = true 的变量,然后使用它来确定og:image 是否适用。此方法还需要isset,例如if (isset($single_post) && $single_post)) 因为它可能没有在别处定义。

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2015-12-12
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多