Products
GG网络技术分享 2025-03-18 16:13 0
我们在开发wordpress主题时一定会遇到在非single.php页面调用当前文章的标题、内容等信息,当我们知道了文章id的时候如何获取到内容的具体信息呢?
很人性化的wordpress为我们提供了一个函数get_post($id)。
可以通过改变get_post($id)->post_title中的post_title来实现:
post_author:(整数)文章作者的编号
post_data:(字符)文章发表的日期和时间(YYYY-MM-DD HH-MM-SS)
post_data_gmt:(字符)文章发表的格林尼治标准时间(GMT) (YYYY-MM-DD HH-MM-SS)
post_content:(字符)文章内容
post_title:(字符)文章标题
post_category:(整数)文章类别的编号。注意:该值在WordPress 2.1之后的版本总为0。定义文章的类别时可使用 get_the_category()函数。
post_excerpt:(字符)文章摘要
post_status:(字符)文章状态(publish|pending|draft|private|static|object|attachment|inherit|future)
comment_status:(字符)评论状态(open|closed|registered_only)
ping_status:(字符)pingback/trackback状态(open|closed)
post_password:(字符)文章密码
post_name:(字符)文章的URL嵌套
to_ping:(字符)要引用的URL链接
pinged:(字符)引用过的链接
post_modified:(字符)文章最后修改时间(YYYY-MM-DD HH-MM-SS)
post_modified_gmt:(字符)文章最后修改GMT时间(YYYY-MM-DD HH-MM-SS)
post_parent:(整数)父级文章编号(供附件等)
guid:(字符)文章的一个链接。注意:不能将GUID作为永久链接(虽然在2.5之前的版本中它的确被当作永久链接),也不能将它作为文章的可用链接。GUID是一种独有的标识符,只是目前恰巧成为文章的一个链接。
post_type:(字符)(日志 | 页面 | 附件)
post_mime_type:(字符)Mime类型(供附件等)
comment_count:(整数)评论总数
WordPress默认的搜索功能,使用户搜索结果包括文章内容、文章标题与文章标签 这样搜索出来的结果不会很精确,如果你想让它搜索出来的结果更精确、相关,可以限定只搜索文章的标题。
将下面的代码添加到主题的 functions.php 文件即可实现:
//让WordPress只搜索文章的标题function __search_by_title_only( $search, &$wp_query ){global $wpdb;if ( empty( $search ) ) return $search; // skip processing - no search term in query $q = $wp_query->query_vars; $n = ! empty( $q[\\\'exact\\\'] ) ? \\\'\\\' : \\\'{5cc1b29162d549a8071384de182cc9fc6e6a0fd85e7907f22fd9e18cff4269c3}\\\'; $search = $searchand = \\\'\\\'; foreach ( (array) $q[\\\'search_terms\\\'] as $term ) { $term = esc_sql( like_escape( $term ) ); $search .= \\\"{$searchand}($wpdb->posts.post_title LIKE \\\'{$n}{$term}{$n}\\\')\\\"; $searchand = \\\' AND \\\'; } if ( ! empty( $search ) ) { $search = \\\" AND ({$search}) \\\"; if ( ! is_user_logged_in() ) $search .= \\\" AND ($wpdb->posts.post_password = \\\'\\\') \\\"; } return $search;}add_filter( \\\'posts_search\\\', \\\'__search_by_title_only\\\', 500, 2 );
Demand feedback