php_SettingsIndexableFields.php
<?php
namespace FindStr;
class SettingsIndexableFields extends Settings {
public function __construct() {
$this->settings_option_name = 'findstrIndexableFields';
/**
* Filter the indexable settings save path
*
* @hook findstr_settings_indexable_fields_save_path
*
* @param {string} $settings_save_file
*
* @return {string} $settings_save_file
*/
$this->settings_save_file = apply_filters( 'findstr_settings_indexable_fields_save_path', 'findstr/indexable-fields.json' );
$this->default_settings = $this->get_default_settings();
parent::__construct();
}
public function get_default_settings(): object {
//json decode and encode to make sure the array is an object
return json_decode(
wp_json_encode(
array(
'ID' => array(
'id' => 'ID',
'searchable' => true,
'filterable' => false,
'sortable' => true,
'label' => 'ID',
'type' => 'text',
),
'post_title' => array(
'id' => 'post_title',
'searchable' => true,
'filterable' => true,
'sortable' => true,
'label' => 'Title',
'type' => 'text',
),
'post_content' => array(
'id' => 'post_content',
'searchable' => true,
'filterable' => false,
'sortable' => false,
'label' => 'Content',
'type' => 'text',
),
'permalink' => array(
'id' => 'permalink',
'searchable' => true,
'filterable' => false,
'sortable' => false,
'label' => 'Permalink',
'type' => 'text',
),
'post_type' => array(
'id' => 'post_type',
'filterable' => true,
'sortable' => false,
'label' => 'Post Type',
'type' => 'text',
),
'featured_image' => array(
'id' => 'featured_image',
'filterable' => false,
'sortable' => false,
'label' => 'Featured Image',
'type' => 'text',
),
'language' => array(
'id' => 'language',
'filterable' => true,
'sortable' => false,
'label' => 'Language',
'type' => 'text',
),
'post_date' => array(
'id' => 'post_date',
'filterable' => true,
'sortable' => true,
'label' => 'Date',
'type' => 'date',
),
'post_name' => array(
'id' => 'post_name',
'searchable' => true,
'filterable' => false,
'sortable' => false,
'label' => 'Slug',
'type' => 'text',
),
)
)
);
}
}