网站建设资讯

NEWS

网站建设资讯

wordpress%s wordpress手机端

如何在WordPress首页调用某页面的文章内容

在wordpress中,不仅在首页,在其他任何地方调用页面,均可以通过get_page或get_pages这两个内置函数来实现调用一篇或多篇页面内容

按需网站建设可以根据自己的需求进行定制,成都网站制作、网站建设构思过程中功能建设理应排到主要部位公司成都网站制作、网站建设的运用实际效果公司网站制作网站建立与制做的实际意义

1、利用get_page获取1个指定的页面内容

if ( is_home() ) : //这个判断非必需,这里表示将输出限定在首页

$page = get_page( 5 ); // 5为调用页面的ID

if( $page ) {

//var_dump($page); 

printf("%s", apply_filters('the_content', $page-post_content) ); //输出页面内容

}

endif;

2、利用get_pages获取页面列表

// 详细的参数可参考/wp-includes/ - post.php中get_pages函数中的说明

// 以下仅仅列出几个作为示例

$args = array(

'sort_column' = 'ID',  //指定依id排序

'sort_order'    = 'ASC', // 指定排序方式为升序

'number'        = 6 // 指定只获取6篇页面内容

);

$pages = get_pages($args);

//var_dump($wpdb);

if(count($pages)) {

foreach ($pages as $key = $page) {

printf("%s", apply_filters('the_content', $page-post_content) ); //输出页面内容

}

}

总结:

页面其实是wordpress文章格式的一种,内置有很多较为直观的函数,主要位置/wp-includes/ - post.php文件中,建议多看看就好。

wordpress里面的一些函数,不懂。。

哈哈,最近也在研究WP自带主题。

function twentyeleven_posted_on() 这是主题自定义的方法(字段/函数)

printf( ... ) 这个的意思是格式化输出

注意看里面的代码中 %1$s 这样的代码,它的意思是调用相应的函数值,比如你给的代码里面的:

%1$s 调用的就是 排在第一个函数 esc_url( get_permalink ) 的值,以此类推 %2%s就是调用第二个。。。

这段代码简单缩略一下比较好理解:

function xxxx_posted_on(){ //自定义字段

printf( __( %1$s, %2$s, %3$s ), A, B, C ) //这里的A , B ,C 可以是字符串也可以是函数

}

这时如果你在主题模板中写上 ?php xxxx_posted_on(); ?

他就会输出 :ABC

具体每个函数什么功能,那就太罗嗦了,不如装个词典,上wordpress官网看文档实在。

建议多动手实验,实验时,排除冗余的代码,有利于分析它们的功能。

如何创建WordPress自定义查询

大家都知道,输入到WordPress的所有数据都将被保存在数据库中,如果我们需要这些数据,就要对数据库进行查询,然后输出我们需要的数据。比如我们需要在首页输出网站的最新文章,或者在分类页面输出该分类的最新文章,又或者在文章页面输出详细的文章内容……

查询数据库的方法很多,较常用的有以下3种:使用pre_get_posts 动作、 query_posts() 函数 或 WP_Query 类。

pre_get_posts 动作

当你查询数据库的时候,Wordpress创建了一个全局变量 $query 。使用动作 pre_get_posts 就可以获取 $query 变量并将其作为参数传递给回调函数。

要知道,pre_get_posts 可以用来获取所有的数据库信息,包括后台管理区域,而且它可以多次使用,所以要获取我们想要的数据,我们需要对它进行判断检查。要检查是否正在改变主查询,我们可以使用函数 is_main_query()。

1

2

3

4

if(is_main_query())

{

// Modify the query

}

尽管这样,它还是会在后台管理区域中被获取,所以你还需要检查是否在你希望的页面输出,比如,你要修改分类页面的查询,你就需要添加 is_category() 函数。

1

2

3

4

if(is_main_query() is_category())

{

// Modify the query

}

例如,如果你希望在首页查询中排除某些分类,你可以向下面一样修改查询:

1

2

3

4

5

6

add_action( 'pre_get_posts', 'exclude_category' );

function exclude_category( $query ) {

if ( $query-is_home() $query-is_main_query() ! $query-get( 'cat' ) ){

$query-set( 'cat', '-5' );

}

}

你还可以通过修改 posts_per_page 参数来修改通过查询获取的文章篇数

1

2

3

4

5

6

add_action( 'pre_get_posts', 'get_one_post' );

function get_one_post( $query ) {

if ( $query-is_home() $query-is_main_query() ){

$query-set( 'posts_per_page', 1 );

}

}

posts_per_page 是用来修改WordPress默认的查询的,如果你需要添加额外的查询,你就需要使用 WP_Query 类。

query_posts() 函数

query_posts() 是修改WordPress主查询的另一种方法,这是最简单的编辑数据库查询的方法,因为它会覆盖默认的 $query 变量。但 query_posts() 不是最好的,也不是最有效的方法,更好的方式还是使用 posts_per_page 来修改主查询。

就像 posts_per_page 一样,你可以使用 query_posts() 来修改返回的文章数量,默认情况下,WordPress会返回 10 篇文章,你可以使用下面代码修改为 1 篇:

1

2

3

4

5

6

7

8

9

10

?php

query_posts( 'posts_per_page=1' );

while ( have_posts() ) : the_post();

echo '

h1';

the_title();

echo '/h1

';

endwhile;

?

了解更多,请阅读 WordPress函数:query_posts

WP_Query 类

WP_Query 类 定义在 wp-includes/query.php 文件中,它是一个 类(class),用来查询数据库然后在我们想要的页面输出文章。WP_Query 会创建一个可以用在任何页面的变量 $wp_query ,你可以通过多种方式来获取查询的信息。

最主要的方式是 $wp_query-have_posts() ,它可以在循环的内部被 have_posts() 函数调用。你可以通过 the_post() ,在循环的内部使用这个变量来获取当前文章的信息。

1

2

3

4

5

6

7

8

$new_query = new WP_Query( $args );

// The Loop

while ( $new_query-have_posts() ) :

$new_query-the_post();

printf('

h1%s/h1

', get_the_title() );

endwhile;

WP_Query 类 还可以用来二次查询数据库,但你需要使用 wp_reset_postdata() 函数 来重置前一个查询。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

$new_query = new WP_Query( $args );

// The Loop

while ( $new_query-have_posts() ) :

$new_query-the_post();

printf('

h1%s/h1

', get_the_title() );

endwhile;

wp_reset_postdata();

$second_query = new WP_Query( $second_args );

// The Loop

while ( $second_query-have_posts() ) :

$second_query-the_post();

printf('

h1%s/h1

', get_the_title() );

endwhile;

wp_reset_postdata();

在 WordPress官方文档中,介绍了不同的参数和方法,更多详情请访问 WP_Query 类。


网站栏目:wordpress%s wordpress手机端
网站链接:http://njwzjz.com/article/doesdhh.html