아이디 대신 우편명으로 우편물을 받다
네, 현재 이 코드를 가지고 있습니다.
<?php
$post_id = 266;
echo "<div id='widgets-wrapper3'><div id='marginwidgets' style='overflow: auto; max- width: 100%; margin: 0 auto; border: none !important;'>";
$queried_post = get_post($post_id);
echo "<div class='thewidgets'>";
echo substr($queried_post->post_content, 0, 500);
echo "<a href='".get_permalink( 26 )."' title='Read the whole post' class='rm'>Read More</a>";
echo "</div>";
echo "</div></div>";
?>
위의 코드를 보시면 알 수 있듯이, ID로 투고를 받는 것이 루틴이지만, 저의 permalinks는 SEO를 위해 post ID가 아닌 post name으로 바뀝니다.우편물을 우편명으로 받으려면 어떻게 해야 하나요?
여기 있는 누군가가 알아냈으면 좋겠어요.감사해요.
get_page_by_path()
WordPress에는 도움이 될 수 있는 기능이 내장되어 있으며 몇 가지 주의사항을 덧붙입니다.
<?php get_page_by_path( $page_path, $output, $post_type ) ?>
여기 관련 Codex 항목입니다.
투고를 얻으려면 페이지가 아닌 '투고'를 '투고'로 지정하기만 하면 됩니다.$post_type
인수, 그리고 보통OBJECT
(따옴표 없이) 로서$output
다음과 같이 입력합니다.
<?php get_page_by_path( 'my_post_slug', OBJECT, 'post' ) ?>
이 함수는 일치하는 게시물의 게시 또는 개인 상태를 확인하지 않습니다.찾으시는 아이템이 및 첨부 파일이지만 투고 및 페이지(초안, 개인 투고 등)에 문제가 있을 수 있는 경우 매우 편리합니다.
찾고 있는 페이지이며, 그 페이지가 계층적(즉, 상위 페이지 포함)인 경우 경로 전체를 제공해야 합니다. 즉, 'parent_page_slug/my_page_slug'입니다.
WP_Query / get_posts()
이 중 하나라도 문제가 된다면WP_Query
게시물을 받는 수업name
:
$found_post = null;
if ( $posts = get_posts( array(
'name' => 'my_post_slug',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1
) ) ) $found_post = $posts[0];
// Now, we can do something with $found_post
if ( ! is_null( $found_post ) ){
// do something with the post...
}
function get_post_by_name($post_name, $output = OBJECT) {
global $wpdb;
$post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type='post'", $post_name ));
if ( $post )
return get_post($post, $output);
return null;
}
이런 거.
사용하다WP_Query
이 함수는 지정된 이름의 첫 번째 게시물을 가져옵니다.null
찾을 수 없는 경우:
function get_post_by_name(string $name, string $post_type = "post") {
$query = new WP_Query([
"post_type" => $post_type,
"name" => $name
]);
return $query->have_posts() ? reset($query->posts) : null;
}
기본적으로는 이 유형의 항목이 검색됩니다.post
:
get_post_by_name("my-post")
두 번째 인수로 이 값을 다른 값으로 설정할 수 있습니다.
get_post_by_name("my-page", "page")
언급URL : https://stackoverflow.com/questions/12905763/get-post-by-post-name-instead-of-id
'programing' 카테고리의 다른 글
MongoDB, 어레이에서 객체 삭제 (0) | 2023.04.06 |
---|---|
Oracle이 제약 조건을 발견하다 (0) | 2023.04.06 |
Springboot / Angular 2 - HTML5 URL 처리 방법 (0) | 2023.04.06 |
TypeScript의 '확장'과 '실장'의 차이점은 무엇입니까? (0) | 2023.04.06 |
커스텀 디렉티브의 ng-change 구현 방법 (0) | 2023.04.06 |