public function widget($args, $instance)
 {
     $this->instance = $instance;
     $category = $this->get_category_from_instance($instance);
     $categories = array();
     foreach ($category as $pvalue) {
         $value = hocwp_get_value_by_key($pvalue, 'value');
         if (hocwp_id_number_valid($value)) {
             $categories[] = $value;
         }
     }
     $bm_args = array('category' => implode(',', $categories));
     $bookmarks = get_bookmarks($bm_args);
     hocwp_widget_before($args, $instance);
     $bookmarks = hocwp_sanitize_bookmark_link_image($bookmarks);
     $bm_args = array('before' => '', 'after' => '');
     echo _walk_bookmarks($bookmarks, $bm_args);
     hocwp_widget_after($args, $instance);
 }
function mylinkorder_list_bookmarks($args = '')
{
    $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '', 'exclude_category' => '', 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1, 'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '<h2>', 'title_after' => '</h2>', 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', 'category_before' => '<li id="%id" class="%class">', 'category_after' => '</li>');
    $r = wp_parse_args($args, $defaults);
    extract($r, EXTR_SKIP);
    $output = '';
    if ($categorize) {
        //Split the bookmarks into ul's for each category
        $cats = get_terms('link_category', array('name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0));
        foreach ((array) $cats as $cat) {
            $params = array_merge($r, array('category' => $cat->term_id));
            $bookmarks = mylinkorder_get_bookmarks($params);
            if (empty($bookmarks)) {
                continue;
            }
            $output .= str_replace(array('%id', '%class'), array("linkcat-{$cat->term_id}", $class), $category_before);
            $catname = apply_filters("link_category", $cat->name);
            $output .= "{$title_before}{$catname}{$title_after}\n\t<ul class='xoxo blogroll'>\n";
            $output .= _walk_bookmarks($bookmarks, $r);
            $output .= "\n\t</ul>\n{$category_after}\n";
        }
    } else {
        //output one single list using title_li for the title
        $bookmarks = mylinkorder_get_bookmarks($r);
        if (!empty($bookmarks)) {
            if (!empty($title_li)) {
                $output .= str_replace(array('%id', '%class'), array("linkcat-{$category}", $class), $category_before);
                $output .= "{$title_before}{$title_li}{$title_after}\n\t<ul class='xoxo blogroll'>\n";
                $output .= _walk_bookmarks($bookmarks, $r);
                $output .= "\n\t</ul>\n{$category_after}\n";
            } else {
                $output .= _walk_bookmarks($bookmarks, $r);
            }
        }
    }
    $output = apply_filters('wp_list_bookmarks', $output);
    if (!$echo) {
        return $output;
    }
    echo $output;
}
Esempio n. 3
0
/**
 * Retrieve or echo all of the bookmarks.
 *
 * List of default arguments are as follows:
 *
 * These options define how the Category name will appear before the category
 * links are displayed, if 'categorize' is 1. If 'categorize' is 0, then it will
 * display for only the 'title_li' string and only if 'title_li' is not empty.
 *
 * @since 2.1.0
 *
 * @see _walk_bookmarks()
 *
 * @param string|array $args {
 *     Optional. String or array of arguments to list bookmarks.
 *
 *     @type string   $orderby          How to order the links by. Accepts post fields. Default 'name'.
 *     @type string   $order            Whether to order bookmarks in ascending or descending order.
 *                                      Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'.
 *     @type int      $limit            Amount of bookmarks to display. Accepts 1+ or -1 for all.
 *                                      Default -1.
 *     @type string   $category         Comma-separated list of category ids to include links from.
 *                                      Default empty.
 *     @type string   $category_name    Category to retrieve links for by name. Default empty.
 *     @type int|bool $hide_invisible   Whether to show or hide links marked as 'invisible'. Accepts
 *                                      1|true or 0|false. Default 1|true.
 *     @type int|bool $show_updated     Whether to display the time the bookmark was last updated.
 *                                      Accepts 1|true or 0|false. Default 0|false.
 *     @type int|bool $echo             Whether to echo or return the formatted bookmarks. Accepts
 *                                      1|true (echo) or 0|false (return). Default 1|true.
 *     @type int|bool $categorize       Whether to show links listed by category or in a single column.
 *                                      Accepts 1|true (by category) or 0|false (one column). Default 1|true.
 *     @type int|bool $show_description Whether to show the bookmark descriptions. Accepts 1|true or 0|false.
 *                                      Default 0|false.
 *     @type string   $title_li         What to show before the links appear. Default 'Bookmarks'.
 *     @type string   $title_before     The HTML or text to prepend to the $title_li string. Default '<h2>'.
 *     @type string   $title_after      The HTML or text to append to the $title_li string. Default '</h2>'.
 *     @type string   $class            The CSS class to use for the $title_li. Default 'linkcat'.
 *     @type string   $category_before  The HTML or text to prepend to $title_before if $categorize is true.
 *                                      String must contain '%id' and '%class' to inherit the category ID and
 *                                      the $class argument used for formatting in themes.
 *                                      Default '<li id="%id" class="%class">'.
 *     @type string   $category_after   The HTML or text to append to $title_after if $categorize is true.
 *                                      Default '</li>'.
 *     @type string   $category_orderby How to order the bookmark category based on term scheme if $categorize
 *                                      is true. Default 'name'.
 *     @type string   $category_order   Whether to order categories in ascending or descending order if
 *                                      $categorize is true. Accepts 'ASC' (ascending) or 'DESC' (descending).
 *                                      Default 'ASC'.
 * }
 * @return string|void Will only return if echo option is set to not echo. Default is not return anything.
 */
function wp_list_bookmarks($args = '')
{
    $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '', 'exclude_category' => '', 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1, 'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '<h2>', 'title_after' => '</h2>', 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', 'category_before' => '<li id="%id" class="%class">', 'category_after' => '</li>');
    $r = wp_parse_args($args, $defaults);
    $output = '';
    if (!is_array($r['class'])) {
        $r['class'] = explode(' ', $r['class']);
    }
    $r['class'] = array_map('sanitize_html_class', $r['class']);
    $r['class'] = trim(join(' ', $r['class']));
    if ($r['categorize']) {
        $cats = get_terms('link_category', array('name__like' => $r['category_name'], 'include' => $r['category'], 'exclude' => $r['exclude_category'], 'orderby' => $r['category_orderby'], 'order' => $r['category_order'], 'hierarchical' => 0));
        if (empty($cats)) {
            $r['categorize'] = false;
        }
    }
    if ($r['categorize']) {
        // Split the bookmarks into ul's for each category
        foreach ((array) $cats as $cat) {
            $params = array_merge($r, array('category' => $cat->term_id));
            $bookmarks = get_bookmarks($params);
            if (empty($bookmarks)) {
                continue;
            }
            $output .= str_replace(array('%id', '%class'), array("linkcat-{$cat->term_id}", $r['class']), $r['category_before']);
            /**
             * Filter the bookmarks category name.
             *
             * @since 2.2.0
             *
             * @param string $cat_name The category name of bookmarks.
             */
            $catname = apply_filters('link_category', $cat->name);
            $output .= $r['title_before'];
            $output .= $catname;
            $output .= $r['title_after'];
            $output .= "\n\t<ul class='xoxo blogroll'>\n";
            $output .= _walk_bookmarks($bookmarks, $r);
            $output .= "\n\t</ul>\n";
            $output .= $r['category_after'] . "\n";
        }
    } else {
        //output one single list using title_li for the title
        $bookmarks = get_bookmarks($r);
        if (!empty($bookmarks)) {
            if (!empty($r['title_li'])) {
                $output .= str_replace(array('%id', '%class'), array("linkcat-" . $r['category'], $r['class']), $r['category_before']);
                $output .= $r['title_before'];
                $output .= $r['title_li'];
                $output .= $r['title_after'];
                $output .= "\n\t<ul class='xoxo blogroll'>\n";
                $output .= _walk_bookmarks($bookmarks, $r);
                $output .= "\n\t</ul>\n";
                $output .= $r['category_after'] . "\n";
            } else {
                $output .= _walk_bookmarks($bookmarks, $r);
            }
        }
    }
    /**
     * Filter the bookmarks list before it is echoed or returned.
     *
     * @since 2.5.0
     *
     * @param string $html The HTML list of bookmarks.
     */
    $html = apply_filters('wp_list_bookmarks', $output);
    if (!$r['echo']) {
        return $html;
    }
    echo $html;
}
function wp_list_bookmarks($args = '')
{
    if (is_array($args)) {
        $r =& $args;
    } else {
        parse_str($args, $r);
    }
    $defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '', 'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1, 'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '<h2>', 'title_after' => '</h2>', 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', 'category_before' => '<li id="%id" class="%class">', 'category_after' => '</li>');
    $r = array_merge($defaults, $r);
    extract($r, EXTR_SKIP);
    $output = '';
    if ($categorize) {
        //Split the bookmarks into ul's for each category
        $cats = get_categories("type=link&category_name={$category_name}&include={$category}&orderby={$category_orderby}&order={$category_order}&hierarchical=0");
        foreach ((array) $cats as $cat) {
            $params = array_merge($r, array('category' => $cat->cat_ID));
            $bookmarks = get_bookmarks($params);
            if (empty($bookmarks)) {
                continue;
            }
            $output .= str_replace(array('%id', '%class'), array("linkcat-{$cat->cat_ID}", $class), $category_before);
            $catname = apply_filters("link_category", $cat->cat_name);
            $output .= "{$title_before}{$catname}{$title_after}\n\t<ul>\n";
            $output .= _walk_bookmarks($bookmarks, $r);
            $output .= "\n\t</ul>\n{$category_after}\n";
        }
    } else {
        //output one single list using title_li for the title
        $bookmarks = get_bookmarks($r);
        if (!empty($bookmarks)) {
            if (!empty($title_li)) {
                $output .= str_replace(array('%id', '%class'), array("linkcat-{$category}", $class), $category_before);
                $output .= "{$title_before}{$title_li}{$title_after}\n\t<ul>\n";
                $output .= _walk_bookmarks($bookmarks, $r);
                $output .= "\n\t</ul>\n{$category_after}\n";
            } else {
                $output .= _walk_bookmarks($bookmarks, $r);
            }
        }
    }
    if (!$echo) {
        return $output;
    }
    echo $output;
}
function wp_list_bookmarks($args = '') {
	if ( is_array($args) )
		$r = &$args;
	else
		parse_str($args, $r);

	$defaults = array('orderby' => 'name', 'order' => 'ASC', 'limit' => -1, 'category' => '',
		'category_name' => '', 'hide_invisible' => 1, 'show_updated' => 0, 'echo' => 1,
		'categorize' => 1, 'title_li' => __('Bookmarks'), 'title_before' => '<h2>', 'title_after' => '</h2>',
		'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat',
		'category_before' => '<li id="%id" class="%class">', 'category_after' => '</li>');
	$r = array_merge($defaults, $r);
	extract($r);

	$output = '';

	if ( $categorize ) {
		//Split the bookmarks into ul's for each category
		$cats = get_categories("type=link&category_name=$category_name&include=$category&orderby=$category_orderby&order=$category_order&hierarchical=0");

		foreach ( (array) $cats as $cat ) {
			$bookmarks = get_bookmarks("limit=$limit&category={$cat->cat_ID}&show_updated=$show_updated&orderby=$orderby&order=$order&hide_invisible=$hide_invisible&show_updated=$show_updated");
			if ( empty($bookmarks) )
				continue;
			$output .= str_replace(array('%id', '%class'), array("linkcat-$cat->cat_ID", $class), $category_before);
			$output .= "$title_before$cat->cat_name$title_after\n\t<ul>\n";
			$output .= _walk_bookmarks($bookmarks, $r);
			$output .= "\n\t</ul>\n$category_after\n";
		}
	} else {
		//output one single list using title_li for the title
		$bookmarks = get_bookmarks("limit=$limit&category=$category&show_updated=$show_updated&orderby=$orderby&order=$order&hide_invisible=$hide_invisible&show_updated=$show_updated");
		
		if ( !empty($bookmarks) ) {
			if ( !empty( $title_li ) ){
				$output .= str_replace(array('%id', '%class'), array("linkcat-$category", $class), $category_before);
				$output .= "$title_before$title_li$title_after\n\t<ul>\n";
				$output .= _walk_bookmarks($bookmarks, $r);
				$output .= "\n\t</ul>\n$category_after\n";
			} else {
				$output .= _walk_bookmarks($bookmarks, $r);
			}
		}
	}

	if ( !$echo )
		return $output;
	echo $output;
}