WordPress 단축코드를 사용하여 태그 추가
쇼트 코드를 사용한 간단한 WordPress 플러그인을 쓰고 있습니다.숏코드가 포함된 페이지에 특정 정보를 입력해 주세요.<meta>
태그. 이게 가능한가요?그렇다면 우아한 방법이 있을까요?
나는 내가 더 할 수 있다는 것을 안다.<meta>
태그 부착wp_head
후크입니다만, 메타 태그의 컨텐츠가 플러그 인에 의해서 생성된 문자열과 일치하도록 해 주세요.모든 코드를 헤더로 이동할 수 있지만, 나중에 쇼트 코드에서 어떻게 참조해야 할지 잘 모르겠습니다.즉, 변수 선언을 할 수 있습니다.<head>
필터를 사용하면 쇼트 코드를 사용하여 호출하는 클래스 메서드에 사용할 수 없습니다.
좋은 생각 있어요?
갱신:
shortcode의 핸들러 함수가 wp_head hook에 액션을 추가하는 좋은 솔루션이 제안되었습니다.
add_shortcode('fakeshortcode', 'fakeshortcode_handler');
function fakeshortcode_handler() {
function add_meta_tags() {
//echo stuff here that will go in the head
}
add_action('wp_head', 'add_meta_tags');
}
이것은 훌륭합니다만, 문제는 쇼트 코드가 해석되어 액션이 추가되기 전에 wp_head가 발생한다는 것입니다(따라서 ALONE 위의 코드에서는 헤드에 아무것도 추가되지 않습니다).그것을 실현하기 위해서, 나는 이 투고에 있는 해결책을 빌렸다.기본적으로 게시물을 "앞을 내다보고" 쇼트코드가 오지 않았는지 확인하는 기능입니다.이 경우 IT부문은 다음 사항을 추가합니다.add_action('wp_head'...
.
편집: 변수 전달 방법에 대한 후속 질문을 삭제했습니다.새로운 질문입니다.
첫 번째 시도(이걸 사용하지 마세요... 아래 '편집' 참조:
먼저 다음과 같이 쇼트 코드를 설정해야 합니다.
add_shortcode( 'metashortcode', 'metashortcode_addshortcode' );
그런 다음 훅을 추가해야 하는 기능을 만듭니다.wp_head
그런 식으로요.
function metashortcode_addshortcode() {
add_action( 'wp_head', 'metashortcode_setmeta' );
}
그런 다음 다음 다음에서 수행할 작업을 정의합니다.wp_head
:
function metashortcode_setmeta() {
echo '<meta name="key" content="value">';
}
쇼트 코드 추가[metashortcode]
는 필요에 따라 메타데이터를 추가합니다.이 코드는 사용자가 이 작업을 수행하는 방법을 이해하는 데 도움이 되도록만 제공되었습니다.그것은 완전히 테스트되지 않았다.
편집 : 이전 코드는 개념일 뿐 실행 순서 때문에 동작할 수 없습니다.다음은 예상한 결과를 얻을 수 있는 작업 예입니다.
// Function to hook to "the_posts" (just edit the two variables)
function metashortcode_mycode( $posts ) {
$shortcode = 'metashortcode';
$callback_function = 'metashortcode_setmeta';
return metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function );
}
// To execute when shortcode is found
function metashortcode_setmeta() {
echo '<meta name="key" content="value">';
}
// look for shortcode in the content and apply expected behaviour (don't edit!)
function metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function ) {
if ( empty( $posts ) )
return $posts;
$found = false;
foreach ( $posts as $post ) {
if ( stripos( $post->post_content, '[' . $shortcode ) !== false ) {
add_shortcode( $shortcode, '__return_empty_string' );
$found = true;
break;
}
}
if ( $found )
add_action( 'wp_head', $callback_function );
return $posts;
}
// Instead of creating a shortcode, hook to the_posts
add_action( 'the_posts', 'metashortcode_mycode' );
맛있게 드세요!
언급URL : https://stackoverflow.com/questions/9558211/use-wordpress-shortcode-to-add-meta-tags
'source' 카테고리의 다른 글
커스텀 Angular를 사용한 스프링 부트 및 보안JS 로그인 페이지 (0) | 2023.03.05 |
---|---|
Ajax에서 302 리다이렉트를 처리할 수 없습니다.그 이유는 무엇입니까? (0) | 2023.03.05 |
spring을 사용하여 xml을 정리하고 marshal을 해제하는 방법은 무엇입니까? (0) | 2023.03.05 |
Heroku는 Java 11 Spring Boot App을 배포할 수 없습니다. (0) | 2023.02.18 |
$digest 이후 angularjs 워치 실행 연기(DOM 이벤트 상승) (0) | 2023.02.17 |