Hello, i have an issue with post categories, in my frontity.state.source i have wrong urls
there is routes to my blog category (not a custom post) categories are on routes without /blog/
for example -
not /blog/category/generowanie-leadow/
but /category/generowanie-leadow/
okey thats urls without /blog/ but works, unlike custom posts categories doesnt work at all (tried all urls what i can imagine)
for blog i need link /blog/category/category_name
for casestudies i need link /casestudies_category/category_name
There is link to my WP REST API https://wp.callpage.pl
There is link to my project git clone Bitbucket
my frontity.settings.js
const settings = {
"name": "call-page",
"state": {
"frontity": {
"url": "https://wp.callpage.pl",
"title": "CallPage | Widget kontaktowy - CallPage®",
"description": "Some text here",
}
},
"packages": [
{
"name": "call-page",
},
{
"name": "@frontity/wp-source",
"state": {
"source": {
"url": "https://wp.callpage.pl",
"postsPage": "/blog",
"postTypes": [
{
type: "posts",
endpoint: "posts",
archive: "/blog"
},
{
type: "wiedza",
endpoint: "wiedza",
archive: "/wiedza",
},
{
type: "casestudies",
endpoint: "casestudies",
archive: "/casestudies"
},
{
type: "branze",
endpoint: "branze",
archive: "/branze"
}
]
}
},
},
{
name: "@frontity/google-tag-manager-analytics",
state: {
googleTagManagerAnalytics: {
containerIds: ["GTM-PPFXRVZ"],
},
},
},
"@frontity/tiny-router",
"@frontity/html2react"
]
};
export default settings;
and there is my wp functions.php
<?php
​
​
​
​
​
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'callpage' ),
) );
​
​
​
​
/*
* Enable support for custom logo.
*
*/
// add_theme_support( 'custom-logo', array(
// 'height' => 400,
// 'width' => 100,
// 'flex-height' => true,
// 'flex-width' => true,
// ) );
​
​
​
add_filter('wpcf7_autop_or_not', '__return_false');
​
​
​
​
​
// Register thumbnails
// add_theme_support( 'post-thumbnails' );
// add_image_size( 'homepage-thumb', 385, 302 );
​
​
​
​
​
// This adds support for pages only:
// add_theme_support( 'post-thumbnails', array( 'page' ) );
​
//add option page to panel (ACF)
// if( function_exists('acf_add_options_page') ) {
// acf_add_options_page();
​
// }
​
//add option page to panel (ACF)
if( function_exists('acf_add_options_page') ) {
acf_add_options_page('Blog widget');
// acf_add_options_page('Header');
// acf_add_options_page('Footer');
}
​
​
// // wiedza
// // Dodawanie nowego typu postĂłw START
function create_wiedza_posttype(){
$args = array(
'label' => 'Wiedza',
'labels' => array(
'name' => __('Wiedza'),
'singular_name' => __('Wiedza'),
'add_new' => __('Dodaj wiedzÄ™'),
'add_new_item' => __('Dodaj NowÄ… wiedzÄ™'),
'edit_item' => __('Edytuj wiedzÄ™'),
'new_item' => __('Nowy wiedzÄ™'),
'view_item' => __('Zobacz wiedzÄ™'),
'search_items' => __('Szukaj wiedzy'),
'not_found' => __('Nie Znaleziono wiedzy'),
'not_found_in_trash' => __('Brak wiedzy w koszu'),
'all_items' => __('Cała wiedza'),
'archives' => __('Zarchiwizowana wiedza'),
'insert_into_item' => __('Dodaj do wiedzy'),
'uploaded_to_this_item' => __('Sciągnięto do bieżącej wiedzy'),
'featured_image' => __('Zdjęcie wiedzy'),
'set_featured_image' => __('Ustaw Zdjęcie wiedzy'),
'remove_featured_image' => __('Usuń Zdjęcie wiedzy'),
'use_featured_image' => __('Użyj Zdjęcie wiedzy'),
'menu_name' => __('Wiedza')
),
'description' => __('Typ Postu zawiera treść dla wiedzy'),
'public' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-coffee',
'supports' => array('title','editor','author','thumbnail','excerpt','revisions','page-attributes'),
'has_archive' => false,
'hierarchical' => false,
'show_in_rest' => true,
'rewrite' => array('slug'=>'wiedza','with_front'=>false),
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),
);
register_post_type('wiedza',$args);
}
add_action('init','create_wiedza_posttype',0);
function register_taxonomy_category_wiedza() {
$labels = [
'name' => _x('Categories', 'taxonomy general name'),
'singular_name' => _x('Category', 'taxonomy singular name'),
'search_items' => __('Search Categories'),
'all_items' => __('All Categories'),
'parent_item' => __('Parent Category'),
'parent_item_colon' => __('Parent Category:'),
'edit_item' => __('Edit Category'),
'update_item' => __('Update Category'),
'add_new_item' => __('Add New Category'),
'new_item_name' => __('New Category Name'),
'menu_name' => __('Kategorie'),
];
$args = [
'hierarchical' => true, // make it hierarchical (like categories)
'labels' => $labels,
'show_ui' => true,
'show_in_rest' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => ['slug' => 'category_wiedza'],
];
register_taxonomy('category_wiedza', ['wiedza'], $args);
}
add_action('init', 'register_taxonomy_category_wiedza');
​
function my_plugin_rest_route_for_post( $route, $post ) {
if ( $post->post_type === 'wiedza' ) {
$route = '/wp/v2/wiedza/' . $post->ID;
}
​
if ( $post->post_type === 'branze' ) {
$route = '/wp/v2/branze/' . $post->ID;
}
return $route;
}
add_filter( 'rest_route_for_post', 'my_plugin_rest_route_for_post', 10, 2 );
​
​
​
​
​
// // case studies
// // Dodawanie nowego typu postĂłw START
function create_casestudies_posttype(){
$args = array(
'label' => 'casestudies',
'labels' => array(
'name' => __('casestudies'),
'singular_name' => __('casestudies'),
'add_new' => __('Add case studies'),
'add_new_item' => __('Add new case studies'),
'edit_item' => __('Edit cases tudies'),
'new_item' => __('New case studies'),
'view_item' => __('See case studies'),
'search_items' => __('Search case studies'),
'not_found' => __('Not found case studies'),
'not_found_in_trash' => __('Missing case studies in trash'),
'all_items' => __('All case studies'),
'archives' => __('Zarchiwizowane ebooki'),
'insert_into_item' => __('Add to case studies'),
'uploaded_to_this_item' => __('Sciągnięto do bieżącego ebooka'),
'featured_image' => __('Thumbnail case studies'),
'set_featured_image' => __('Set thumbnail case studies'),
'remove_featured_image' => __('Delete thumbnail case studies'),
'use_featured_image' => __('Use thumbnail case studies'),
'menu_name' => __('casestudies')
),
'description' => __('Typ Postu zawiera treść dla case studies'),
'public' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-coffee',
'supports' => array('title','editor','author','thumbnail','excerpt','revisions','page-attributes'),
'has_archive' => false,
'hierarchical' => false,
'show_in_rest' => true,
'rewrite' => array('slug'=>'casestudies','with_front'=>false),
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),
);
register_post_type('casestudies',$args);
}
add_action('init','create_casestudies_posttype',0);
function register_taxonomy_category_casestudies() {
$labels = [
'name' => _x('Categories', 'taxonomy general name'),
'singular_name' => _x('Category', 'taxonomy singular name'),
'search_items' => __('Search Categories'),
'all_items' => __('All Categories'),
'parent_item' => __('Parent Category'),
'parent_item_colon' => __('Parent Category:'),
'edit_item' => __('Edit Category'),
'update_item' => __('Update Category'),
'add_new_item' => __('Add New Category'),
'new_item_name' => __('New Category Name'),
'menu_name' => __('Category'),
];
$args = [
'hierarchical' => true, // make it hierarchical (like categories)
'labels' => $labels,
'show_ui' => true,
'show_in_rest' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => ['slug' => 'category_casestudies'],
];
register_taxonomy('category_casestudies', ['casestudies'], $args);
}
add_action('init', 'register_taxonomy_category_casestudies');
​
// function my_plugin_rest_route_for_post( $route, $post ) {
// if ( $post->post_type === 'casestudies' ) {
// $route = '/wp/v2/casestudies/' . $post->ID;
// }
// return $route;
// }
// add_filter( 'rest_route_for_post', 'my_plugin_rest_route_for_post', 10, 2 );
​
​
​
​
​
​
​
// add taxonomy medicine
function register_taxonomy_medicine_casestudies() {
$labels = [
'name' => _x('Medicine', 'taxonomy general name'),
'singular_name' => _x('medicine', 'taxonomy singular name'),
'search_items' => __('Search medicine'),
'all_items' => __('All medicines'),
'parent_item' => __('Parent medicine'),
'parent_item_colon' => __('Parent medicine:'),
'edit_item' => __('Edit medicine'),
'update_item' => __('Update medicine'),
'add_new_item' => __('Add New medicine'),
'new_item_name' => __('New medicine Name'),
'menu_name' => __('medicine'),
];
$args = [
'hierarchical' => true, // make it hierarchical (like categories)
'labels' => $labels,
'show_ui' => true,
'show_in_rest' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => ['slug' => 'medicine_casestudies'],
];
register_taxonomy('medicine_casestudies', ['casestudies'], $args);
}
add_action('init', 'register_taxonomy_medicine_casestudies');
// end taxonomy medicine
​
​
// ______________________________________________ concreate industry custom post _________________________________________
​
​
// // Dodawanie nowego typu postĂłw START
function create_branze_posttype(){
$args = array(
'label' => 'BranĹĽe',
'labels' => array(
'name' => __('BranĹĽe'),
'singular_name' => __('BranĹĽe'),
'add_new' => __('Dodaj BranĹĽe'),
'add_new_item' => __('Dodaj NowÄ… BranĹĽÄ™'),
'edit_item' => __('Edytuj BranĹĽÄ™'),
'new_item' => __('Nowa BranĹĽa'),
'view_item' => __('Zobacz BranĹĽÄ™'),
'search_items' => __('Szukaj BranĹĽy'),
'not_found' => __('Nie Znaleziono BranĹĽy'),
'not_found_in_trash' => __('Brak BranĹĽy w koszu'),
'all_items' => __('Wszystkie BranĹĽe'),
'archives' => __('Zarchiwizowane BranĹĽe'),
'insert_into_item' => __('Dodaj do BranĹĽy'),
'uploaded_to_this_item' => __('Sciągnięto do bieżącegj Branży'),
'featured_image' => __('Zdjęcie Branży'),
'set_featured_image' => __('Ustaw Zdjęcie Branży'),
'remove_featured_image' => __('Usuń Zdjęcie Branży'),
'use_featured_image' => __('Użyj Zdjęcie Branży'),
'menu_name' => __('BranĹĽe')
),
'description' => __('Typ Postu zawiera treść dla Branży'),
'public' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'show_in_menu' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-coffee',
'supports' => array('title','editor','author','thumbnail','excerpt','revisions','page-attributes'),
'has_archive' => false,
'hierarchical' => false,
'show_in_rest' => true,
'rewrite' => array('slug'=>'branze','with_front'=>false),
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),
);
register_post_type('branze',$args);
}
add_action('init','create_branze_posttype',0);
function register_taxonomy_category_branze() {
$labels = [
'name' => _x('Categories', 'taxonomy general name'),
'singular_name' => _x('Category', 'taxonomy singular name'),
'search_items' => __('Search Categories'),
'all_items' => __('All Categories'),
'parent_item' => __('Parent Category'),
'parent_item_colon' => __('Parent Category:'),
'edit_item' => __('Edit Category'),
'update_item' => __('Update Category'),
'add_new_item' => __('Add New Category'),
'new_item_name' => __('New Category Name'),
'menu_name' => __('Kategorie'),
];
$args = [
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_in_rest' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => ['slug' => 'category_branze'],
];
register_taxonomy('category_branze', ['branze'], $args);
}
add_action('init', 'register_taxonomy_category_branze');
​
​
​
// function my_plugin_rest_route_for_post( $route, $post ) {
// if ( $post->post_type === 'branze' ) {
// $route = '/wp/v2/branze/' . $post->ID;
// }
// return $route;
// }
// add_filter( 'rest_route_for_post', 'my_plugin_rest_route_for_post', 10, 2 );
​
​
​
​
​
add_filter( 'rest_post_collection_params', function ( $params, WP_Post_Type $post_type ) {
if ( 'post' === $post_type->name && isset( $params['per_page'] ) ) {
$params['per_page']['maximum'] = 1000;
}
return $params;
}, 10, 2 );
​
​
​
​
​
​
function wl_page_by_slug( $slug ) {
​
echo "<pre>";
print_r($slug['slug']);
echo "</pre>";
//remember if here should always return in json
return array( $slug['slug'] );
}
add_action('rest_api_init', function() {
register_rest_route('wl/v1', 'post/(?P<slug>[a-zA-Z0-9-]+)', [
'methods' => 'GET',
'callback' => 'wl_page_by_slug',
]);
});
​
?>