License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: WordPress Search with Vue.js, spa, search, rest api, single-file components.
Requires WordPress: 4.9
Requires PHP at least: 5.6.0
A Single Page Search app integrated inside a child theme of the Twenty Seventeen WordPress theme implemented with Vue.js.
The intent is to help developers with a boilerplate single page app created with Vue.js inside a WordPress child theme.
The child theme registers a Custom Page Template Search Page Template
.
The Custom Page Template loads a Single Page Search App implemented with Vue.js
- Download the latest archive and extract to a folder
- Make sure you have the WordPress
Twenty Seventeen
theme installed - Upload the
vuetwentyseventeen
child theme folder from the extract to the/wp-content/themes/
directory - Activate the theme through the
Themes Menu
in WordPress
- Make sure the
vuetwentyseventeen
child theme is activated. - Create a Page from your admin dashboard in WordPress or use an existing one where you want the Vue Search App to render.
- Open the Page in Edit mode from your admin dashboard.
- On the right hand side under attributes you’ll see a template
Search Page Template
- Select the
Search Page Template
and save the page. - You'll see the Single Page Search app render on the page.
- Setup your development environment (see accompanying article)
- Navigate to the
spa
directory using your system terminal - Run
npm install
to install required packages innode_modules
- Run
npm run dev
- Enqueue the dynamic script
http://localhost:8080/dist/build.js
in thewp_register_script()
insidevuetwentyseventeen_enqueue_spa_scripts()
of theincludes/enqueue-scripts.php
file. - When done, generate a build with
npm run build
and enqueue it again.
Note: You may need to modify the CSS to suit your theme.
- Requires the Twenty Seventeen WordPress theme.
- Boilerplate files and comments have not been removed.
- Uses Bootstrap for the CSS
- The request to the WordPress REST API only loads 1000 records. Modify this in
spa/components/AppGetPosts.vue