<?php
|
// /content/faq.php
|
|
use JVBase\registrar\Registrar;
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
|
|
add_action('jvbDefineRegistrar', 'altr_faq');
|
add_action('jvbDefineRegistrarFields', 'altr_faq_fields');
|
|
add_action('plugins_loaded', 'altr_faq',1);
|
//Add fields later so we can verify taxonomies/post types exist
|
add_action('plugins_loaded', 'altr_faq_fields', 2);
|
|
add_filter('altr_FaqSchemaDefault', 'altr_faq_schema');
|
add_filter('altr_FaqMetaDefault', 'altr_faq_meta');
|
add_filter('altr_FaqArchiveDefault', 'altr_faq_archive');
|
|
function altr_faq(){
|
if (!class_exists('JVBase\registrar\Registrar')) {
|
return;
|
}
|
$faq = Registrar::forPost('faq', 'FAQ', 'FAQs')
|
->setIcon('question')
|
->make([
|
'rewrite' => [
|
'slug' => 'faq',
|
'with_front' => false,
|
],
|
'taxonomies' => [
|
'section',
|
],
|
'rewrite_taxonomy' => 'section'
|
])
|
->setAll([
|
'show_directory',
|
'is_faq'
|
]);
|
|
//$directory = $faq->getConfig('directory');
|
|
}
|
|
function altr_faq_fields():void
|
{
|
if (!class_exists('JVBase\registrar\Registrar')) {
|
return;
|
}
|
$faq = Registrar::getInstance('faq');
|
$breadcrumbs = $faq->config('breadcrumbs');
|
$breadcrumbs->setCrumb('section');
|
|
|
$fields = $faq->fields();
|
$fields->addField('section', [
|
'type' => 'selector',
|
'subtype' => 'taxonomy',
|
'taxonomy' => 'section',
|
'label' => 'FAQ Section',
|
]);
|
}
|
|
function altr_faq_schema():array
|
{
|
return [
|
'type' => 'JVBase\managers\SEO\render\Thing\CreativeWork\WebPage\QAPage',
|
'name' => '{{post_title}} | FAQs on {{section.name}}',
|
];
|
}
|
|
function altr_faq_meta():array
|
{
|
return[
|
'name' => '{{post_title}} | FAQs {{section.name}}',
|
];
|
}
|
|
function altr_faq_archive(array $defaults):array
|
{
|
return array_merge($defaults, [
|
'name' => 'Frequently Asked Questions',
|
'description' => 'Common Questions about Laser Tattoo Removal.'
|
]);
|
}
|
|
function altr_faq_reference_schema(array $defaults):array
|
{
|
return $defaults;
|
}
|
|
|
//function altr_faq():array
|
//{
|
// return [
|
// 'singular' => 'FAQ',
|
// 'plural' => 'FAQs',
|
// 'dash_description' => 'Manage your answers',
|
// 'capability_type' => ['faq', 'faqs'],
|
// 'breadcrumb' => 'FAQ',
|
// 'addCrumb' => 'section',
|
// 'show_directory'=> true,
|
// 'directory_extra'=> ['section'],
|
// 'dash_title' => 'FAQs',
|
// 'icon' => 'question',
|
// 'rewrite_taxonomy' => 'section',
|
// 'rewrite' => [
|
// 'slug' => 'faq',
|
// 'with_front' => false,
|
// ],
|
// 'fields' => [
|
// 'post_title' => [
|
// 'type' => 'text',
|
// 'label' => 'Question',
|
// ],
|
// 'post_status' => [
|
// 'type' => 'radio',
|
// 'label' => 'Status',
|
// 'hidden' => true,
|
// 'options' => [
|
// 'publish' => 'Show',
|
// 'draft' => 'Hide',
|
// 'trash' => 'Scrap',
|
// 'delete' => 'Permanently Delete'
|
// ]
|
// ],
|
// 'post_content' => [
|
// 'type' => 'textarea',
|
// 'label' => 'Answer',
|
// 'quill' => true,
|
// ],
|
// ],
|
// 'single_image' => false,
|
// 'upload_title' => 'Upload Before & Afters',
|
// 'seo' => [
|
// 'meta' => [
|
// 'title' => '{{post_title}} | FAQ',
|
// 'description' => '{{post_excerpt}}'
|
// ],
|
// 'schema' => [
|
// 'type' => 'FAQPage',
|
// 'question' => '{{post_title}}',
|
// 'answer' => '{{post_excerpt}}',
|
// ],
|
// 'archive' => [
|
// 'type' => 'FAQPage',
|
// 'name' => 'Common Questions about Laser Tattoo Removal',
|
// ],
|
// ]
|
// ];
|
//}
|
//
|
//
|
//add_action('wp_enqueue_scripts', 'nebDashScripts', 9999);
|
//function nebDashScripts() {
|
// global $wp;
|
// $page = str_replace('dash/', '', $wp->request);
|
// if ($page === 'settings') {
|
// wp_enqueue_script('jvb-form');
|
// wp_enqueue_script('jvb-tabs');
|
// wp_enqueue_script('jvb-populate-form');
|
// wp_enqueue_script('jvb-copy-hours');
|
// wp_enqueue_script('jvb-quill');
|
// wp_enqueue_script('jvb-store');
|
// $script = 'function loadSettingsPage() {
|
// let tabs = new window.jvbTabs(document.querySelector(".replace"));
|
// let store = new window.jvbStore({
|
// name: "options",
|
// endpoint: "options",
|
// headers: {
|
// "action_nonce": jvbSettings.dash,
|
// }
|
// });
|
//
|
// let form = new window.jvbForm(store);
|
// let forms = [ "#hours", "#menu-sections"];
|
// let setForms = {};
|
// forms.forEach(f => {
|
// let gotF = document.querySelector(`form${f}`);
|
// setForms[f] = form.registerForm(gotF);
|
//
|
// });
|
//
|
// form.subscribe((event, data) => {
|
// switch (event) {
|
// case "form-submit":
|
// case "form-autosave":
|
// window.jvbQueue.addToQueue({
|
// endpoint: "options",
|
// headers: {
|
// "action_nonce": jvbSettings.dash,
|
// },
|
// data: data.changes,
|
// popup: `Saving options...`,
|
// title: "Saving Options"
|
// });
|
// break;
|
// }
|
// });
|
// }
|
// document.addEventListener("DOMContentLoaded", ()=>{
|
// loadSettingsPage()
|
// });
|
// ';
|
// $output = wp_add_inline_script('jvb-form', $script, 'after');
|
// } elseif ($page === 'dash') {
|
// wp_enqueue_script('jvb-form');
|
// wp_enqueue_script('jvb-store');
|
// $script = 'function loadDashPage() {
|
//
|
// let store = new window.jvbStore({
|
// name: "options",
|
// endpoint: "options",
|
// headers: {
|
// "action_nonce": jvbSettings.dash,
|
// }
|
// });
|
//
|
// let form = new window.jvbForm(store);
|
// let forms = [ "#options"];
|
// let setForms = {};
|
// forms.forEach(f => {
|
// let gotF = document.querySelector(`form${f}`);
|
// setForms[f] = form.registerForm(gotF);
|
//
|
// });
|
//
|
// form.subscribe((event, data) => {
|
// switch (event) {
|
// case "form-submit":
|
// case "form-autosave":
|
// window.jvbQueue.addToQueue({
|
// endpoint: "options",
|
// headers: {
|
// "action_nonce": jvbSettings.dash,
|
// },
|
// data: data.changes,
|
// popup: `Saving options...`,
|
// title: "Saving Options"
|
// });
|
// break;
|
// }
|
// });
|
// }
|
// document.addEventListener("DOMContentLoaded", ()=>{
|
// loadDashPage()
|
// });
|
// ';
|
//// $output = wp_add_inline_script('jvb-form', $script, 'after');
|
// }
|
//}
|