2017-08-03 41 views
1

改变WordPress的全球性的文章标题,我知道我可以使用:如何使用PHP

global $wp_query; 
$wp_query->is_page = true; 

例如设置全局is_page条件为真。

我可以以类似的方式更改全球职位的标题,所以它会影响返回值the_title()

为了澄清事情:

我需要一个使用“虚拟页面”的情况下,如果没有后实际加载的,我不希望使用任何现有的文章标题。只需将一些自定义标题注入到当前全局变量中,以便在当前页面上使用the_title时获得它。

回答

0

终于找到了。很高兴这是很简单的:)不过这段代码也将创造所有其它POST变量为“假后/页”:

$post_id = -99; // negative ID, to avoid clash with a valid post 
$post = new stdClass(); 
$post->ID = $post_id; 
$post->post_title = 'Some title or other'; 
$wp_post = new WP_Post($post); 
wp_cache_add($post_id, $wp_post, 'posts'); 
global $wp, $wp_query; 
$wp_query->post = $wp_post; 
$wp_query->posts = array($wp_post); 
$wp_query->queried_object = $wp_post; 
$wp_query->queried_object_id = $post_id; 
$wp_query->is_404=false; 
$wp_query->is_page=true; 
$GLOBALS['wp_query'] = $wp_query; 
$wp->register_globals(); 

More details here!

1

要修改标题,你可以在WordPress的钩子使用一个构建:

function suppress_if_blurb($title, $id = null) { 

    if (in_category(' blurb', $id)) { 
     return ''; 
    } 

    return $title; 
} 
add_filter('the_title', 'suppress_if_blurb', 10, 2); 

https://codex.wordpress.org/Plugin_API/Filter_Reference/the_title

+0

也许我还不够清楚。我会更新我的问题。我不想更改具体的帖子标题。只是当前页面(不加载任何文章)the_title值。 – mondi

+0

“这不加载任何帖子”我不明白这一点,每一个wordpress服务的页面是一个职位(期望search.php) –

+0

你可以谷歌“WordPress的虚拟页面”。我只是觉得这个问题不是解释这个话题的地方。 – mondi