WordPress函数get_page_by_title检查文章或页面是否存在-蚂蚁资源

WordPress函数get_page_by_title检查文章或页面是否存在

在使用wp_insert_post函数时发生了一件奇怪的事,该函数会重复执行两次,找了很久没找到原因,于是加上get_page_by_title判断条件临时解决一下。此函数用于检查WordPress系统中存在的文章或页面,以防止重复建立。

get_page_by_title( string $page_title, string $output = OBJECT, string|array $post_type = 'page' )

官方描述:如果多个帖子使用相同的标题,则返回ID最小的帖子。小心:如果有多个标题相同的帖子,它将检查最老的发布日期,而不是最小的ID。因为这个函数使用MySQL‘=’比较,$page_title通常与默认排序规则不区分大小写。

参数

  • $page_title
    (string) (必须) 页面标题.
  • $output
    (string) (可选) 所需的返回类型。对象之一,数组_A或数组_N,分别对应于WP_POST对象、关联数组或数字数组。
    默认值:OBJECT
  • $post_type
    (string|array) (可选) POST类型或POST类型数组。
    默认值: ‘page’

返回值

存在返回WP_Post(或数组),不存在返回NULL。

函数原型

该函数位于wp-includes/post.php,在线地址:https://developer.wordpress.org/reference/files/wp-includes/post.php/

function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) {
global $wpdb;

if ( is_array( $post_type ) ) {
$post_type = esc_sql( $post_type );
$post_type_in_string = "'" . implode( "','", $post_type ) . "'";
$sql = $wpdb->prepare(
"
SELECT ID
FROM $wpdb->posts
WHERE post_title = %s
AND post_type IN ($post_type_in_string)
",
$page_title
);
} else {
$sql = $wpdb->prepare(
"
SELECT ID
FROM $wpdb->posts
WHERE post_title = %s
AND post_type = %s
",
$page_title,
$post_type
);
}

$page = $wpdb->get_var( $sql );

if ( $page ) {
return get_post( $page, $output );
}
}

如何按标题查找WordPress页面ID,然后替换内容

在本例中,我们找到“SamplePage”的页面id,然后将页面的内容替换为“HelloWorld!”

function my_content($content) {
$page = get_page_by_title( 'Sample Page' );
if ( is_page($page->ID) )
$content = "Hello World!";
return $content;
}
add_filter('the_content', 'my_content');

如何按标题查找WordPress自定义文章类型

这对于自定义POST类型很有用。以下是自定义类型“link”的$POST数组,标题为“立即实现世界和平”:

$mypost = get_page_by_title('World Peace Now', OBJECT, 'link');
print_r($mypost);

在wp_list_Pages中查找用于排除的页面ID

此示例将返回标题为“About”的页的$page对象。然后,在列出页面时,使用$page->id元素排除有关页。

<?php 
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>

 

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.antziyuan.com",如遇到无法解压的请联系管理员!

蚂蚁资源 » WordPress函数get_page_by_title检查文章或页面是否存在

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
该资源仅供学习和研究传播,大家请在下载后24小时内删除,一切关于该资源商业行为与我们无关。 请勿将该软件进行商业交易、转载等行为,该软件只为研究、学习所提供,该软件使用后发生的一切问题与本站无关。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
找不到素材资源介绍文章里的示例图片?
对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
蚂蚁资源
大家都喜欢的资源网站!
  • 49会员总数(位)
  • 801资源总数(个)
  • 8本周发布(个)
  • 8 今日发布(个)
  • 185稳定运行(天)

提供最优质的资源集合

立即查看 了解详情
升级SVIP尊享更多特权立即升级