#How to set the parameters of the get_term_link function in WordPress?
The parameter setting problem of the function get_term_link in WordPress
Recommended: "wordpress tutorial"
Recently helped someone A friend writes a corporate theme and needs to set a special post type called product for the product. For the convenience of management, I set a special category type and tag type for the product. The category type is product_cat (WordPress's own category type is category ).
Why use get_term_link?:
New types of categories cannot be used To output the category link address, you need to use get_term_link() function, the usage of this function is as follows:
<?php get_term_link( $term, $taxonomy ); ?>
For specific reference, please refer to WordPress Codex: http://codex.wordpress.org/Function_Reference/get_term_link
Question:
Example:
- The variable of the custom category ID is $term. $term is changed according to the background settings. For convenience of explanation, it is assumed that the background parameter is $custom_term = 8
- I want to get the category link address of the custom category ID $term. According to the official instructions, it should be:
<?php $term = $custom_term; echo get_term_link( $term, 'product_cat'); ?>
It seems correct, but here comes the problem. This will return an error:
Catchable fatal error: Object of class WP_Error could not be converted to string in.. That's right, if you directly use echo $term; the output result is indeed 8, which is depressing...
But if you directly do this:
<?php echo get_term_link( 8, 'product_cat'); ?>
it will work normally again.
Solution:
When I was playing around in the WordPress Codex, I accidentally saw that a foreign friend also encountered this problem, and then he solved it himself, and he had an epiphany... Portal 》
It turns out that it is a variable type problem. This get_term_link function is different from other commonly used WordPress functions. It will not convert the variable type by itself. You have to convert the character class into an integer before it can work properly. What a great Orz function!
The following will work normally:
(Bolo sitting on the sofa notes: intval($term, 10) will be better, otherwise there will be errors when the $term value is too large System conversion problem, or use (int)$term)
<?php $term = $custom_term; echo get_term_link( intval($term), 'product_cat'); ?>
So, if you encounter a depressing function like this in the future, you must consider whether it is a problem with the variable data type.
Tossing and playing (end).
The above is the detailed content of How to set parameters of function get_term_link in WordPress. For more information, please follow other related articles on the PHP Chinese website!