English 中文(简体)
• 如何在WordPress中将习惯员额类型档案作为前页?
原标题:How to use a custom post type archive as front page in WordPress?

我愿使用海关员额类型档案作为网站前页,以便

 http://the_site.com/

是一种按照我的<代码> 序号-后型}.php文档显示的定制员额类型档案。

理想的情况是,我想用<代码>is_front_page(,载于我的Functions.php文档中。 我用一个称为“Home”的网页作为前页,对以下几页进行了审判:

 add_filter( pre_get_posts ,  my_get_posts );
 function my_get_posts($query){
     global $wp_the_query;
     if(is_front_page()&&$wp_the_query===$query){
        $query->set( post_type , album );
        $query->set( posts_per_page ,-1);
     }
     return $query;
 }

但是,首页正在归还“Home”的内容,似乎忽视了习俗。

我做了什么错误? 总的来说,是否有更好的办法来实现这一目标?

<>说明:我确实在上张贴了这一信息。 WordPress Responses,但该社区相对而言是很小的。

最佳回答

将最后解决办法作为答案(问题作为评论),仅对仍在研究的人来说。

艾萨克在正确的轨道上添加了一个通过<代码>功能>的过滤器。 他错了什么叫is_front_page(),因为我们在之前重新编号——get_posts,而查询tn t尚未执行。

然而,我们确实有目前的编号。 因此,我们仍能够解决这一问题,研究“语言压力”方案登记册,以备一个名为“<条码>的网页_on_front<>/code>的选项,该版本将用户的网页索引作为前页。

(关于所有压力选项的概览,仅访问<yourwordpressinstallation>/wp-admin/options.php,载于您的浏览器。)

https://wordpress.stack Exchange.com/questions/30851/how-to-use-a-custom-post-type-as-front-page/30854#30854> Ijaas 建议:

add_action("pre_get_posts", "custom_front_page");
function custom_front_page($wp_query) {
    // Compare queried page ID to front page ID.
    if(!is_admin() && $wp_query->get("page_id") == get_option("page_on_front")) {

        // Set custom parameters (values based on Isaacs question).
        $wp_query->set("post_type", "album");
        $wp_query->set("posts_per_page", -1);

        // WP_Query shouldn t actually fetch the page in our case.
        $wp_query->set("page_id", "");

    }
}

你们可能不得不改变几个有条件的tag子,以确保所有gin子仍然发挥作用,这取决于 que子的改变程度。

希望有助于人们。

<Update: as note below , Addcode>!is_admin( to the if-statement to ensure that the function only conducted on the frontend. 如果你只想采取这一行动来进行初步询问,你还可以加上主要查询核对表wp_query->is_main_query()

问题回答

针对Robberts的解决办法:

5月6日

adding && !isAdmin() to the if function other wise it replaces the post type query for all admin pages as well. Just in case anyone has issues with this.

edit: also adding && $wp_query->is_main_query() to the if statement stops it affecting widgets and the menu

因此,我

if ($wp_query->get(“page_id”)=_access_option(”page_on_front”) && !isAdmin() &&$wp_query->is_main_query(){}

为了找到工作,你将不得不在网页模板上添加这一代码,建立一个网页,把你的模板作为你刚创建的网页的模板,然后将这一页定为“背景”的主页;在行政区域阅读。

顺便说一句,is_front_page()只有当你在从行政菜单上打上家页的网页时,才会有效。

另一种选择是修改<代码>index.php,但如果您确实如此,is_front_page(将永远退回不实。 在此情况下,你希望使用<代码>is_home(<>/code>。

我希望能够提供帮助。

艾萨克先生,你是正确的,我对你的问题进行了彻底的解读,我假设你正在寻找这一“友好”方式。

不管怎么说,我把你的法典放在我的试验场,实际上,它只是做了一些工作。 我看着我的卡片记录,然后看看看一下,你的代码在查询栏目<代码>wp_posts.post_status = Private 中产生这一作用。

因此,我尝试在以下几条线路上加添:$query->set(职位:status , public );至您的职称,该行仅作罚款。

简言之,试图:

add_filter( pre_get_posts ,  my_get_posts );
function my_get_posts($query){
    global $wp_the_query;
    if(is_front_page()&&$wp_the_query===$query){
        $query->set( post_type , album );
        $query->set( posts_per_page ,-1);
        $query->set( post_status ,  public );
    }
    return $query;
}




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签