Приложение блога Codeigniter: нацеливание на просмотр одного сообщения из другого представления - PullRequest
0 голосов
/ 21 октября 2018

Я работаю над базовым приложением блога в 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 такого типа: контроллер сообщений и страница одного поста.

Или, альтернативно, маршрут для одного поста.

Учитывая, что один постметод в контроллере сообщений:

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');
}

Каков наилучший метод для таргетинга на просмотр одного сообщения?

1 Ответ

0 голосов
/ 22 октября 2018
if (isset($post->post_image)) {
    // og image
}

, так как изображение будет (или, по-видимому, так) будет доступно только в том случае, если это одно сообщение.

аналогично, вы можете добавить переменную, например $data['single_post'] = true, и просто использовать ее, чтобы определить, является лиog:image применимо.этот метод также потребует isset например if (isset($single_post) && $single_post)), так как он может быть не определен в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...