WordPress 단일 페이지의 이전 페이지와 다음 페이지를 구현하는 방법 [코드 포함]_javascript 기술

WBOY
풀어 주다: 2016-05-16 15:11:05
원래의
1701명이 탐색했습니다.

WordPress 기사 페이지에는 이전 기사와 다음 기사를 구현하는 기능이 있습니다. 그러나 우리는 단일 페이지에서 이전 페이지와 다음 페이지 기능을 구현하려고 합니다. 그것은 내 요구 사항을 완전히 충족했기 때문에 그것을 구현하기 위해 함수를 직접 작성했습니다.
페이지에는 계층적 기능이 있습니다. 요구 사항은 다음과 같이 메뉴 순서에 따라 정렬된 하위 페이지 사이에 이전 및 다음 링크가 있어야 한다는 것입니다.

테마(상위 페이지)

---- zBench(하위 페이지 1)
---- zBorder(하위 페이지 2)
---- zSofa(하위 페이지 3)

현재 페이지가 zBorder인 경우 이전 링크는 zBench이고 다음 링크는 zSofa여야 합니다.

把下面函数代码放入 functions.php(注:函数随手写的,可能不够精简)

/**
* get subpage previous/next page link by zwwooooo
*/
function subpage_nav_link($prevText='', $nextText='') {
global $post;
if ( !$post->post_parent ) return null; //如果不是子页面返回Null
$args = array(
'sort_order' => 'ASC',
'sort_column' => 'menu_order',
'child_of' => $post->post_parent,
'post_type' => 'page'
);
$pages = get_pages($args);
$num = count($pages);
$i = 0;
$index = -1;
foreach ($pages as $page) {
if ($page->ID == $post->ID) {
$index = $i;
break;
}
++$i;
}
if ($i == 0) {
$prev = '';
$next = $pages[$index+1];
} elseif ($i == $num-1) {
$prev = $pages[$index-1];
$next = '';
} else {
$prev = $pages[$index-1];
$next = $pages[$index+1];
}
if ($prev) {
if ($prevText) {
if ( substr_count($prevText, '%title') > 0 ) {
$explode = explode('%title', $prevText);
$prevText = $explode[0] . get_the_title($prev->ID) . $explode[1];
}
} else {
$prevText = get_the_title($prev->ID);
}
$prevlink = '<a class="previous-page-link" href="' . get_page_link($prev->ID). '">' . $prevText . '</a>';
}
if ($next) {
if ($nextText) {
if ( substr_count($nextText, '%title') > 0 ) {
$explode = explode('%title', $nextText);
$nextText = $explode[0] . get_the_title($next->ID) . $explode[1];
}
} else {
$nextText = get_the_title($next->ID);
}
$nextlink = '<a class="next-page-link" href="' . get_page_link($next->ID). '">' . $nextText . '</a>';
}
return array($prevlink, $nextlink);
}
로그인 후 복사

[기능]

subpage_nav_link($prevText, $nextText)

[매개변수]

$prevText: 이전 기사에 대한 링크 텍스트입니다. 비어 있는 경우 기본값은 페이지 제목입니다.

$nextText: 비어 있으면 페이지 제목이 기본값으로 설정됩니다.

예: 일반적인 테마는 page.php의 루프 루프에 호출 코드를 삽입하는 것입니다(모르겠습니다. the_content() 바로 아래에 있습니다.)

코드 복사 코드는 다음과 같습니다.
if ( function_exists('subpage_nav_link') ) {
if ( $subpage_nav_link = subpage_nav_link() ) {
echo $subpage_nav_link[0]; //이전 글(페이지) 링크
echo $subpage_nav_link[1]; //다음 글(페이지) 링크
}
}
?>

참고: if (!$subpage_nav_link[0])를 사용하여 이전 기사가 있는지 확인할 수 있으며, 마찬가지로 if (!$subpage_nav_link[1])를 사용하여 다음 기사가 있는지 확인할 수 있습니다.

PS: $prevText 및 $nextText는 subpage_nav_link('oo %title xx', '')와 같은 문자 조합도 지원합니다. 이 경우 이전 기사 링크 기사는 "oo 페이지 이름 xx"가 됩니다.

또 다른 실용적인 글: 같은 카테고리의 이전/다음 글을 불러오는 워드프레스 글 페이지 구현하기

이전 기사와 다음 기사를 표시하기 위해 WordPress에서 제공하는 함수 코드는 출판 순서에 따라 호출됩니다. 제가 며칠 전에 만든 WordPress 소설 템플릿은 각 카테고리마다 소설을 추가하는 데 사용되기 때문입니다. "Blog Bar의 첫 번째 WordPress. 소설 "웹사이트 테마 템플릿 wpnovel"은 이전 기사와 다음 기사를 호출하는 순서를 사용하는 것이 적절하지 않은 경우 기사 페이지에서 동일한 카테고리의 이전 기사와 다음 기사를 표시하도록 하는 것이 올바른 방법입니다. WordPress는 강력하고 강력합니다. 항상 사용자의 아이디어를 만족시킬 수 있도록 검색을 통해 해당 기능 코드를 찾았습니다.

기본적으로 직접 호출되는 코드


기사가 첫 번째 또는 마지막 기사일 경우 공백이 표시되지만 공백은 판단을 추가하여 채울 수 있습니다


테스트 결과 동일한 카테고리의 기사가 표시되더라도 첫 번째 기사와 마지막 기사에서는 "이미 마지막 기사입니다", "이미 마지막 기사입니다"라는 프롬프트 메시지가 표시되지 않습니다. get_previous_post() 함수에 기사의 카테고리 ID를 지정하는 한 코드는 완전히 유효합니다.

전체 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
$categories = get_the_category();
$categoryIDS = 배열();
foreach ($categories를 $category로) {
array_push($categoryIDS, $category->term_id);
}
$categoryIDS = implode(",", $categoryIDS);
?>



테마 디렉터리에서 기사 페이지 Single.php를 열고 표시하려는 위치에 코드를 추가한 후 파일을 저장합니다.
위의 WordPress 단일 페이지의 이전 페이지와 다음 페이지를 [코드 포함] 구현하는 방법은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. Script Home도 지원해 주시길 바랍니다. .

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!