是否可以从插件动态更改页面标题?
我尝试了global$post,但似乎插件在追求它。
有什么想法吗?
编辑:我正在根据相同的页面/帖子动态编写一些页面,因此每个页面都显示相同的标题。寻找一种通过短代码或编写自己的插件/函数来实现的方法
是否可以从插件动态更改页面标题?
我尝试了global$post,但似乎插件在追求它。
有什么想法吗?
编辑:我正在根据相同的页面/帖子动态编写一些页面,因此每个页面都显示相同的标题。寻找一种通过短代码或编写自己的插件/函数来实现的方法
有一个过滤器:
function wpse_alter_title( $title, $id )
{
// $id = $post->ID;
// alter the title here
return $title;
}
如果要更改“受保护”和“私人”标题,则需要其他筛选器:// Preserve the "%s" - else the title will be removed.
function wpse_alter_protected_title_format( $title )
{
return __( \'Protected: %s\' );
}
function wpse_alter_private_title_format( $title )
{
return __( \'Private: %s\' );
}
最后但并非最不重要的一点是,您必须尽早添加过滤器回调。function wpse_load_alter_title()
{
add_filter( \'the_title\', \'wpse_alter_title\', 20, 2 );
add_filter( \'protected_title_format\', \'wpse_alter_protected_title_format\' );
add_filter( \'private_title_format\', \'wpse_alter_private_title_format\' );
}
add_action( \'init\', \'wpse_load_alter_title\' );
这取决于页面标题呈现的上下文以及数据如何输入到其中。
考虑以下因素:
<h2><?php the_title(); ?></h2>
解决方案包括挂接到the_title
在微风中过滤和改变它。这个怎么样?
<h2><?php echo $post->post_title; ?></h2> // not nice!
由于改变它的问题,这是不好的。很难知道$post
一开始就有人居住。考虑:foreach( get_posts( ... ) as $post ):
...
乍一看,那里没有地方可以钩住。但这可以在实际帖子查询中完成。查看found_posts
滤器但是,请考虑以下因素:
$post = $wpdb->get_row( "SELECT .... " );
echo "<h2>$post->post_title</h2>"
那太疯狂了。重点是,根据您的情况,可能有一个好的解决方案。检查模板文件,查看标题的呈现方式。将其修复为舒适或使插件更难工作。
你永远无法通过插件更改标题,如果mysql_query()
直接用于检索标题。是的,我真的看过了。有些人甚至在模板中硬编码。就像头版。php将包含<h2>Home</h2>
永远不要使用$post->post_title
或者查询数据库。
因此,这取决于上下文和情况。
知道如何使用WP函数吗get_page_by_title() 是否安装了qTranslate?例如:$page_contact = get_page_by_title( \'_e(\"[:en]contact\");\' ,\'page\' ); $page_contact_ID = $page_contact->ID; echo \'~~~~\'.$page_contact_ID; 我能得到匹配的唯一方法是将整个字符串包含在所有语言中,而一旦人们开始编辑页面,这是行不通的。。。