WordPress管理员后台发布文章显示“提请审批”怎么办?

3月 23, 2023 by · Leave a Comment 

偶然迁移博客后发现管理员身份登入后台写文章,发布不了了,原来的“发布”(Publish)按钮变成了“提请审批”(Submit to review),“保存草稿”不可用,“预览”不可用,删除按钮也没有了。但是到过去发布的文章中,却可以编辑发表。这个问题搞了半天也没弄好:

一、先去mysql中查看usermeta表,查看对应的user_id两个权限:wp_capabilities, wp_user_level,都无误。

二、临时禁用全部插件,到wp-content目录下把plugins目录名临时改为_plugins(加了个下划线),“提请审批”依然存在。

三、去mysql表中修复wp_posts表,“提请审批”依然存在。

实在是百思不得其解。最后实在没办法,干脆把wordpress更新到了最新版,重新登陆后台发现,“提请审批”的问题解决了,文章发布按钮又回来了。

WP官方说建议PHP7以上,但其实5.6也都还是可以用的。MYSQL 5.6,5.7也都可以用。

WordPress启用友情链接功能

12月 23, 2021 by · Leave a Comment 

很早以前wordpress就把友情链接的功能给移除了,后来出了个link-manager插件以恢复此功能。

许多朋友抱怨说link-manager插件许久没有更新了,其实这个插件就一行代码,无须更新。

add_filter( 'pre_option_link_manager_enabled', '__return_true' );

所以我们启用wordpress的友情链接功能根本不需要任何插件,把上面一行代码添加到主题functions.php文件中即可,登录后台即可看到久违的“链接”栏目。数据库里也多了一个wp_links表。

wordpress后台右侧白屏解决办法,老版本wordpress移至php5.4环境惹得问题

6月 11, 2016 by · Leave a Comment 

直接解决办法:
编辑wp-admin/includes/screen.php文件,将第706行的:
echo self::$this->_help_sidebar;
修改为:
echo $this->_help_sidebar;

——本文最后由傅老师于2019-08-06编辑过

wordpress从post中删除指定tag以及添加tag

11月 23, 2015 by · Leave a Comment 

WordPress为post添加tag

使用函数wp_set_post_tags($post_id,$tags,false/true)即可,false表示替换原有tag,true则为追加

WordPress从post中删除指定tag

在wordpress 3.6.0及以后的版本中可以使用函数:
wp_remove_object_terms($post_id,$tags,'post_tag')

在3.6.0之前有点小痛苦,假如要删除的tag叫做’tag2delete’:
$tags=get_the_tags($post_id);//取得所有tag
$new_tags=array();
foreach($tags as $tag){
if($tag->name!='tag2delete') array_push($new_tags,$tag->name);
}
wp_set_post_tags($post_id,$new_tags,false);//替换掉原来的tag

get_magic_quotes_gpc在wordpress下无效,php总会自动斜杠转义

7月 25, 2014 by · Leave a Comment 

php下获取post数据时,一般程序写成:
if ( get_magic_quotes_gpc() ) {
$_POST['name'] = stripslashes($_POST['name']);
}

可是在wordpress下即使get_magic_quotes_gpc()的值为0,数据依然会被自动加斜杠转义。原来wordpress框架下是忽略系统的magic_quotes_gpc设置的,总会自动加斜杠转义,而且wordpress为此提供了一个函数stripslashes_deep,且附有说明:

Please Note: On any page load where WordPress itself loads, the above example will be unreliable. Very early in its execution, WordPress intentionally adds “magic quotes” for the sake of consistency. This is regardless of the return of get_magic_quotes_gpc(). Core code, and plugins all over, expect the values of $_REQUEST etc to be escaped.

因此wordpress框架下不用检测get_magic_quotes_gpc()了,直接用stripslashes_deep函数即可。

WordPress如何获取页面对应的page模板id或者名称?

6月 4, 2014 by · Leave a Comment 

wordpress支持在主题根目录下设置自定义page页面模板,也可以放置在page-templates目录下,wordpress后台会自动扫描里面的page模板文件,然后显示在页面编辑窗口右侧的“页面属性”->“模板”下拉框中。

theme目录外的自定义主题

如果你是自定义主题,不走wordpress的theme路径,即:
define('WP_USE_THEMES', false);
这样wordpress依然会读取后台“外观”->“主题”中选定的theme下的page模板文件。

页面模板php文件的匹配

当你发布一个页面时,系统自动为该page添加了一个post_meta: _wp_page_template,记录了该page对应的模板名称。
如果是默认模板,即主题根目录下的page.php,那么_wp_page_template的值为“default”(注意没有.php)。
如果主题根目录下的其他页面模板,那么那么_wp_page_template的值为文件名,形如“page-intro.php”。
如果选择的是子目录下的页面模板,那么_wp_page_template的值包含路径,形如:“page-templates/page-intro.php”。

如何获取_wp_page_template的值?

get_post_meta对于页面page同样有效,只是ID的获取方法不同。
下面的代码可令你一目了然:
echo get_post_meta($wp_query->get_queried_object_id(),'_wp_page_template',true);

——本文最后由傅老师于2014-06-04编辑过