WordPress + Nuxt.js でポートフォリオサイトを作る その10
WordPressサイト(http://works.yuheijotaki.com/)の REST API と Nuxt.js でポートフォリオサイトを作成する。その10
GitHub: https://github.com/yuheijotaki/works-nuxt
Netlify: https://works-yuheijotaki.netlify.com/
meta
設定
トップと詳細で出力を分ける。
また詳細は動的に設定する。
nuxt.config.js
// meta設定 const title = 'サイトのタイトル' const description = 'サイトのディスクリプション' const url = 'https://siteUrl.com' const ogImage = `${url}/assets/img/ogp.png` export default { // ... head: { htmlAttrs: { prefix: 'og: http://ogp.me/ns#' }, titleTemplate: `%s | ${title}`, meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: description }, { property: 'og:image', content: ogImage }, { property: 'og:site_name', content: title }, { property: 'og:description', content: description }, { hid: 'og:type', property: 'og:type', content: 'website' }, { hid: 'og:url', property: 'og:url', content: url }, { hid: 'og:title', property: 'og:title', content: title }, { name: 'twitter:card', content: 'summary_large_image' }, { name: 'twitter:image:src', content: ogImage }, { name: 'twitter:description', content: description }, { hid: 'twitter:url', name: 'twitter:url', content: url }, { hid: 'twitter:title', name: 'twitter:title', content: title } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } ] }, // ...
トップページの.vue
index.vue
// ... export default { // ... head () { return { titleTemplate: null, title: 'Works', } } // ... } // ...
詳細ページの.vue
_slug.vue
// ... export default { // ... data () { return { post: {}, meta: { title: '', type: 'article', url: '' } } }, async asyncData( { params } ) { const { data } = await axios.get('https://apiUrl.com/wp-json/wp/v2/posts?slug=' + params.slug) return { post: data[0], meta: { title: data[0].title.rendered, url: `https://works-yuheijotaki.netlify.com/${data[0].slug}/` } } }, head () { return { title: this.meta.title, meta: [ { hid: 'description', name: 'description', content: this.meta.description }, { hid: 'og:type', property: 'og:type', content: this.meta.type }, { hid: 'og:url', property: 'og:url', content: this.meta.url }, { hid: 'og:title', property: 'og:title', content: `${this.meta.title} | ${title}` }, { hid: 'twitter:url', property: 'twitter:url', content: this.meta.url }, { hid: 'twitter:title', property: 'twitter:title', content: `${this.meta.title} | ${title}` } ] } } } // ...
参考:
- Nuxt.jsでWebサイト構築時に初期設定しておきたい項目まとめ - to-R Media
- Nuxt.js で API から取得した値を meta タグにセットする(nuxt-property-decorator)
- nuxtでtitleタグを動的に設定する · polidog lab++
残り
- コンテンツ調整
- 古いworksはアーカイブつくる
- ドメイン当てる?
- ドキュメント作成