나와 같은 경우 CMS에없는 페이지에서 WordPress 기능을 참조하려는 경우가 있습니다. 이러한 방식으로 백엔드 별 상태로 유지되며 클라이언트가 실수로 삭제할 수 없습니다.
wp-blog-header.php
PHP를 사용 하여 파일을 포함시키는 것만으로도 실제로 간단합니다 require()
.
다음은 쿼리 문자열을 사용하여 모든 게시물에 대한 Facebook OG ( Facebook Open Graph ) 데이터 를 생성하는 예입니다 .
OG 데이터를 생성하려는 게시물의 ID는 http://example.com/yourfilename.php?1
어디에서 와 같은 링크의 예를 들어보십시오 1
.
이제 yourfilename.php
편의상 루트 WordPress 디렉토리에 내용이 있습니다.
<?php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
$uri = $_SERVER['REQUEST_URI'];
$pieces = explode("?", $uri);
$post_id = intval( $pieces[1] );
// og:title
$title = get_the_title($post_id);
// og:description
$post = get_post($post_id);
$descr = $post->post_excerpt;
// og:image
$img_data_array = get_attached_media('image', $post_id);
$img_src = null;
$img_count = 0;
foreach ( $img_data_array as $img_data ) {
if ( $img_count > 0 ) {
break;
} else {
++$img_count;
$img_src = $img_data->guid;
}
} // end og:image
?>
<!DOCTYPE HTML>
<html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=yes" />
<meta property="og:title" content="<?php echo $title; ?>" />
<meta property="og:description" content="<?php echo $descr; ?>" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:url" content="<?php echo site_url().'/your_redirect_path'.$post_id; ?>" />
<meta property="og:image" content="<?php echo $img_src; ?>" />
<meta property="og:site_name" content="Your Title" />
</html>
게시물의 실제 이미지, 발췌 및 제목을 사용하여 모든 게시물에 대한 공유 모델을 생성했습니다!
특수 템플릿을 생성하고이를 위해 퍼머 링크 구조를 편집 할 수 있었지만 한 페이지에만 필요하고 클라이언트가 CMS 내에서 삭제하지 않기를 원하기 때문에 더 깔끔한 옵션처럼 보였습니다.
편집 2017 :
이 접근법은 이제 더 이상 사용되지 않습니다.
2016+ 이상의 WordPress 설치는 WordPress 에 PHP 페이지를 추가하는 방법을 참조하십시오 . 페이지 데이터를 브라우저에 출력하기 전에 포함 할 추가 매개 변수입니다.