Skip to content

Commit 03ef738

Browse files
committed
added second level categories
1 parent 771b3a6 commit 03ef738

File tree

5 files changed

+41
-21
lines changed

5 files changed

+41
-21
lines changed

bundle.js

+14-11
Original file line numberDiff line numberDiff line change
@@ -28733,10 +28733,12 @@
2873328733
_react2.default.createElement(_reactRouter.IndexRoute, { component: _blog2.default }),
2873428734
_react2.default.createElement(_reactRouter.Route, { path: 'page/:pageNum', component: _blog2.default, addHandlerKey: true }),
2873528735
_react2.default.createElement(_reactRouter.Route, { path: 'search/:term', component: _search2.default }),
28736-
_react2.default.createElement(_reactRouter.Route, { path: 'category/:slug', component: _category2.default }),
28737-
_react2.default.createElement(_reactRouter.Route, { path: 'category/:slug/:pageNum', component: _category2.default }),
28736+
_react2.default.createElement(_reactRouter.Route, { path: 'category/:slug/', component: _category2.default }),
28737+
_react2.default.createElement(_reactRouter.Route, { path: 'category/:parent/:slug/', component: _category2.default }),
28738+
_react2.default.createElement(_reactRouter.Route, { path: 'category/:slug/:pageNum(\\\\d+)', component: _category2.default }),
28739+
_react2.default.createElement(_reactRouter.Route, { path: 'category/:parent/:slug/:pageNum(\\\\d+)', component: _category2.default }),
2873828740
_react2.default.createElement(_reactRouter.Route, { path: 'tag/:slug', component: _tag2.default }),
28739-
_react2.default.createElement(_reactRouter.Route, { path: 'tag/:slug/:pageNum', component: _tag2.default }),
28741+
_react2.default.createElement(_reactRouter.Route, { path: 'tag/:slug/:pageNum(\\\\d+)', component: _tag2.default }),
2874028742
_react2.default.createElement(_reactRouter.Route, { path: '*', component: _single2.default })
2874128743
);
2874228744

@@ -30529,13 +30531,6 @@
3052930531
return _react2.default.createElement(
3053030532
'header',
3053130533
{ className: 'navbar navbar-toggleable-sm navbar-light bg-faded' },
30532-
_react2.default.createElement(
30533-
'button',
30534-
{ className: 'navbar-toggler navbar-toggler-right', type: 'button', 'data-toggle': 'collapse',
30535-
'data-target': '#navbarSupportedContent', 'aria-controls': 'navbarSupportedContent',
30536-
'aria-expanded': 'false', 'aria-label': 'Toggle navigation' },
30537-
_react2.default.createElement('span', { className: 'navbar-toggler-icon' })
30538-
),
3053930534
_react2.default.createElement(
3054030535
'h1',
3054130536
{ className: 'navbar-brand' },
@@ -33264,7 +33259,7 @@
3326433259
{ key: cat.term_id },
3326533260
_react2.default.createElement(
3326633261
_reactRouter.Link,
33267-
{ to: '/category/' + cat.slug, className: 'cat-links' },
33262+
{ to: _this2.getCategoryPath(cat.link), className: 'cat-links' },
3326833263
cat.name
3326933264
),
3327033265
1 < _this2.props.categories.length && i < _this2.props.categories.length - 1 ? ', ' : ''
@@ -33273,6 +33268,13 @@
3327333268
});
3327433269
}
3327533270
}
33271+
}, {
33272+
key: 'getCategoryPath',
33273+
value: function getCategoryPath(link) {
33274+
var el = document.createElement('a');
33275+
el.href = link;
33276+
return el.pathname;
33277+
}
3327633278
}, {
3327733279
key: 'renderDates',
3327833280
value: function renderDates() {
@@ -34107,6 +34109,7 @@
3410734109
_createClass(Category, [{
3410834110
key: 'componentWillMount',
3410934111
value: function componentWillMount() {
34112+
console.log("SLUG", this.props.params.slug);
3411034113
this.props.getTaxIdFromSlug('categories', this.props.params.slug);
3411134114
}
3411234115
}, {

lib/theme-enqueue.php

+14-6
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,23 @@ function bootstrap() {
2222
function theme() {
2323
wp_enqueue_script( 'ReactTheme-js', get_template_directory_uri() . '/bundle.js', [ 'jquery' ], date( 'YmdHis' ), true );
2424
wp_localize_script( 'ReactTheme-js', 'RT_API', array(
25-
'root' => esc_url_raw( rest_url() ),
26-
'nonce' => wp_create_nonce( 'wp_rest' ),
27-
'siteName' => get_bloginfo( 'name' ),
28-
'siteDescription' => get_bloginfo( 'description' ),
29-
'categories' => get_categories( [ 'hide_empty' => 0 ] ),
30-
'current_user' => wp_get_current_user()
25+
'root' => esc_url_raw( rest_url() ),
26+
'nonce' => wp_create_nonce( 'wp_rest' ),
27+
'siteName' => get_bloginfo( 'name' ),
28+
'siteDescription' => get_bloginfo( 'description' ),
29+
'categories' => $this->get_categories_with_links(),
30+
'current_user' => wp_get_current_user()
3131
) );
3232
wp_enqueue_style( get_stylesheet(), get_template_directory_uri() . '/bundle.css' );
3333
}
34+
35+
function get_categories_with_links() {
36+
$categories = get_categories( [ 'hide_empty' => 0 ] );
37+
foreach ( $categories as $i => $category ) {
38+
$categories[ $i ]->link = get_category_link( $category->term_id );
39+
}
40+
return $categories;
41+
}
3442
}
3543

3644
endif;

src/components/main/article/meta.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,20 @@ export default class Meta extends Component {
77
return this.props.categories.map((cat, i) => {
88
if (1 == this.props.categories.length || cat.slug !== 'uncategorized') {
99
return (<span key={cat.term_id}>
10-
<Link to={`/category/${cat.slug}`} className="cat-links">{cat.name}</Link>
10+
<Link to={this.getCategoryPath(cat.link)} className="cat-links">{cat.name}</Link>
1111
{(1 < this.props.categories.length && i < (this.props.categories.length - 1)) ? ', ' : ''}
1212
</span>);
1313
}
1414
});
1515
}
1616
}
1717

18+
getCategoryPath(link) {
19+
var el = document.createElement('a');
20+
el.href = link;
21+
return el.pathname;
22+
}
23+
1824
renderDates() {
1925
if ('post' === this.props.type && this.props.isSingle ) {
2026
return <span> | <time dateTime={this.props.date.substring(0,10)}>{this.props.formattedDate}</time></span>;

src/containers/category.js

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Footer from '../components/footer';
99

1010
class Category extends Component {
1111
componentWillMount() {
12+
console.log("SLUG",this.props.params.slug);
1213
this.props.getTaxIdFromSlug('categories', this.props.params.slug);
1314
}
1415

src/routes.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ export default (
1212
<IndexRoute component={Blog}/>
1313
<Route path="page/:pageNum" component={Blog} addHandlerKey={true}/>
1414
<Route path="search/:term" component={Search}/>
15-
<Route path="category/:slug" component={Category}/>
16-
<Route path="category/:slug/:pageNum" component={Category}/>
15+
<Route path="category/:slug/" component={Category}/>
16+
<Route path="category/:parent/:slug/" component={Category}/>
17+
<Route path="category/:slug/:pageNum(\\d+)" component={Category}/>
18+
<Route path="category/:parent/:slug/:pageNum(\\d+)" component={Category}/>
1719
<Route path="tag/:slug" component={Tag}/>
18-
<Route path="tag/:slug/:pageNum" component={Tag}/>
20+
<Route path="tag/:slug/:pageNum(\\d+)" component={Tag}/>
1921
<Route path="*" component={Single}/>
2022
</Route>
2123
);

0 commit comments

Comments
 (0)