more category work
This commit is contained in:
parent
b415c4d0e8
commit
1ff6d12398
|
@ -142,6 +142,35 @@ class ComicPress {
|
|||
}
|
||||
return $this->categories_by_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn the tree of comics categories into a string to be fed into wp_query functions.
|
||||
*/
|
||||
function get_all_comic_categories_as_cat_string() {
|
||||
if (empty($this->all_comic_categories_as_string)) {
|
||||
$categories = array();
|
||||
foreach ($this->category_tree as $node) {
|
||||
$categories[] = end(explode("/", $node));
|
||||
}
|
||||
$this->all_comic_categories_as_string = implode(",", $categories);
|
||||
}
|
||||
return $this->all_comic_categories_as_string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the current post is in the comics category or a child category.
|
||||
*/
|
||||
function in_comic_category($post_id) {
|
||||
$categories = wp_get_post_categories($post_id);
|
||||
if (is_array($categories)) {
|
||||
foreach ($this->category_tree as $node) {
|
||||
if (in_array(end(explode("/", $node)), $categories)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -230,37 +230,8 @@ function get_comic_url($folder = 'comic', $override_post = null, $filter = 'defa
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn the tree of comics categories into a string to be fed into wp_query functions.
|
||||
*/
|
||||
function get_all_comic_categories_as_cat_string() {
|
||||
global $all_comic_categories_as_string, $category_tree;
|
||||
if (empty($all_comic_categories_as_string)) {
|
||||
$categories = array();
|
||||
foreach ($category_tree as $node) {
|
||||
$parts = explode("/", $node);
|
||||
$categories[] = end($parts);
|
||||
}
|
||||
$all_comic_categories_as_string = implode(",", $categories);
|
||||
}
|
||||
return $all_comic_categories_as_string;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return true if the current post is in the comics category or a child category.
|
||||
*/
|
||||
function in_comic_category() {
|
||||
global $post, $category_tree;
|
||||
|
||||
$comic_categories = array();
|
||||
foreach ($category_tree as $node) {
|
||||
$comic_categories[] = end(explode("/", $node));
|
||||
}
|
||||
|
||||
return (count(array_intersect($comic_categories, wp_get_post_categories($post->ID))) > 0);
|
||||
}
|
||||
|
||||
// ComicPress Template Functions
|
||||
|
||||
function the_comic($filter = 'default') { echo get_comic_url('comic', null, $filter); }
|
||||
|
|
|
@ -93,6 +93,28 @@ class ComicPressTest extends PHPUnit_Framework_TestCase {
|
|||
|
||||
$this->assertEquals($expected_tree, $this->cp->sort_comic_categories());
|
||||
}
|
||||
|
||||
function testGetAllComicCategoriesAsCatString() {
|
||||
$this->cp->category_tree = array("0/1", "0/2", "0/3");
|
||||
$this->assertEquals("1,2,3", $this->cp->get_all_comic_categories_as_cat_string());
|
||||
}
|
||||
|
||||
function providerTestInComicCategory() {
|
||||
return array(
|
||||
array(array(1), false),
|
||||
array(array(2), true)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTestInComicCategory
|
||||
*/
|
||||
function testInComicCategory($post_categories, $is_in_category) {
|
||||
$this->cp->category_tree = array('0/2');
|
||||
wp_set_post_categories(1, $post_categories);
|
||||
|
||||
$this->assertEquals($is_in_category, $this->cp->in_comic_category(1));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue