WordPress에서 get_term_link 함수의 매개변수를 설정하는 방법은 무엇입니까?
WordPress
권장: "wordpress tutorial"
최근에 친구가 기업 테마 작성을 도와주었는데, 관리용으로 product라는 특별한 게시물 유형을 설정해야 했습니다. 편의상 제품에 대한 특별한 카테고리 유형과 태그 유형을 설정했습니다. 카테고리 유형은 product_cat입니다(워드프레스 자체의 카테고리 유형은 카테고리입니다).
get_term_link를 사용하는 이유:
새로운 유형의 카테고리는 사용할 수 없습니다8be7b7802875d8a60c697d966db9f806 카테고리 링크 주소를 출력하려면 get_term_link() 함수를 사용해야 합니다. 이 함수는 다음과 같습니다.
<?php get_term_link( $term, $taxonomy ); ?>
구체적인 참조는 WordPress Codex를 참조하세요: http://codex.wordpress.org/Function_Reference/get_term_link
질문:
예:
- 사용자 정의 카테고리 ID의 변수 $term은 $term이고, $term은 백그라운드 설정을 기준으로 하며 편의상 background 파라메타는 $custom_term = 8이라고 가정합니다.
- 커스텀 카테고리 ID $term의 카테고리 링크 주소를 얻고 싶어서, 공식 지침에 따르면 다음과 같아야 합니다.
<?php $term = $custom_term; echo get_term_link( $term, 'product_cat'); ?>
맞는 것 같지만 문제가 발생하면 다음과 같은 오류가 반환됩니다.
Catchable fatal error: WP_Error 클래스의 개체를 문자열로 변환할 수 없습니다.. 맞습니다. echo $term을 직접 사용하면 출력 결과가 실제로 8이 되는데...
하지만 직접 이렇게 하면
<?php echo get_term_link( 8, 'product_cat'); ?>
다시 정상적으로 작동합니다.
해결책:
워드프레스 코덱스에서 놀다가 우연히 외국인 친구도 이런 문제가 발생하는 것을 보고 스스로 해결했는데 갑자기 깨달았습니다... Portal》
알고보니 변수 유형 문제입니다. 이것은 get_term_link 함수입니다. 일반적으로 사용되는 WordPress 함수와 달리 변수 유형을 자체적으로 변환하지 않습니다. 문자 클래스를 정수로 변환해야 제대로 작동합니다. !
다음은 정상적으로 작동합니다:
(소파에 앉아 있는 Bolo 참고 사항: intval($term, 10)이 더 좋을 것입니다. 그렇지 않으면 $term 값이 너무 클 때 16진수 변환 문제가 발생하거나 ( int)를 사용합니다. $term)
<?php $term = $custom_term; echo get_term_link( intval($term), 'product_cat'); ?>
그래서 앞으로 이런 우울한 함수를 만나게 된다면 변수 데이터형에 문제가 있는 것은 아닌지 생각해 보아야 합니다.
뒤치고 놀기(완료).
위 내용은 WordPress에서 get_term_link 함수의 매개변수를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!