wp_remote_get 时出现 curl error 60: ssl certificate problem: certificate has expired 错误

可能1 Let's Encrypt CA证书在2021年9月过期,可能会导致此错误,解决方法: CentOS7 服务器命令行运行: yum update ca-certificates 可能2 WordPress的自带CA证书过期,可以从如下地址下载: https://github.com/WordPress/WordPress/blob/master/wp-includes/certificates/ca-bundle.crt 之后替换到站点目录下的: /wp-cinludes/certificates/ca-bundle.crt 问题即可解决。

2021-10-12 · 1 min · Duke Yin

Hooks简介2:自定义挂钩和可插拔功能简介

如果您已经阅读了WordPress Hooks简介的第1部分 ,则应该清楚地了解什么构成“动作”或“过滤器”钩子以及可以在何处使用它们。 今天,我们将深入探讨“兔子洞”,讨论可插拔功能以及创建自己的“动作”和“过滤器”挂钩点的概念,以及如何利用它们并在主题和主题之间建立关系。使用各种WordPress Hooks的插件。 注意:本教程不适合胆小的人(有一些高级知识)。 如果您还没有阅读第1部分,我强烈建议您在继续阅读之前阅读。 什么是自定义动作和过滤点? 如前所述,可以在WordPress页面加载过程中使用操作在关键点运行您自己的代码,以及使用过滤器修改文本,设置或几乎所有带有过滤器的内容,以量身定制WordPress安装完全符合您的要求。 那主题和插件呢? 我该如何在其中注入自己的定制特效? 这就是自定义操作和过滤点的来源。 使用WordPress核心本身内置的相同功能,我们可以在主题和插件中创建我们自己的动作点(例如“ wp_head”或“ wp_footer”)。 从本质上讲,这是相对简单的,可以以标准方式或更高级的方式使用。 假设我们正在开发一个名为“ WPCandy News”的插件,则可以在显示最新新闻的小部件的顶部添加以下内容: <?php do_action( 'wpcandy_news_widget_before' ); ?> 这是构成WordPress操作点的核心。 do_action()函数指示WordPress查找附加到指定标签的钩子(在我们的示例中为“ wpcandy_news_widget_before”)并运行该函数。 简单吧? 等一下,这还不是全部。 do_action()函数还可以接受多个参数(参数),然后根据需要将其传递给我们所连接的函数。 听起来很复杂,对吧? 并不是的。 让我们使用上面相同的示例,但将其扩展一点。 <?php do_action( 'wpcandy_news_widget_before', $limit, $id ); ?> 在代码段中,我添加了两个额外的参数。 $ limit和$ id变量。 这些是由插件创建的示例变量,分别包含要显示的文章数和我们分配给窗口小部件中元素的ID。 如果我们正确设置了add_action()调用,则应该在函数中接收这些值,以备使用。 等等,add_action()在哪里出现? 没有add_action() ,`do_action()`毫无意义。 `add_action()`函数允许我们以及其他主题或插件分配要在WordPress达到我们的操作后运行的功能。 从根本上讲,我们如何抓住新的行动要点的一个例子是: <?php add_action( 'wpcandy_news_widget_before', 'wpcandy_news_widget_before_content' ); function wpcandy_news_widget_before_content () { echo '<p>' . __( ' This is our custom text.', 'wpcandy' ) . </p>'; } // End wpcandy_news_widget_before_content() ?> 现在一切都很好,但是$ limit和$ id呢? 输入我们的最后两个参数; “优先”和“可接受的论点”。 ...

2019-11-10 · 1 min · Duke Yin

Hooks简介1:基本的WordPress构建块

WordPress钩子可以说是WordPress开发的基础,构成了核心功能的很大一部分,迄今为止几乎所有可用的插件和主题都在使用它。 对于刚开始使用WordPress开发的用户来说,钩子的概念也可能有些令人生畏。 今天,我们将深入了解WordPress钩子的确切含义,以及它们如何在您成为WordPress摇滚明星的途中为您提供帮助。 无论如何,WordPress钩子到底是什么? WordPress钩子实质上是一种触发器,允许用户使用简短的代码片段来修改WordPress主题或插件的区域,或将自己的代码添加到WordPress的各个部分而无需修改原始文件。 例如,“当WordPress选择要加载的模板文件时,运行我们的自定义代码”或“当为每个帖子生成内容时,在内容末尾添加社交书签链接”。 一旦我们对不同类型的钩子有了更多的了解,这些示例将得到扩展。 挂钩可以分为“动作”和“过滤器”挂钩,前者允许在各个点插入自定义代码(与JavaScript中的事件不同),后者允许对内容的各种位进行操作(例如,内容页面或博客文章)。 让我们仔细看看其中的每个,对吧? 动作挂钩 动作钩子是WordPress核心,主题和插件代码中的指定点,可以在外部资源(钩子所在范围的范围之外……在核心,主题或插件中)插入其他代码,并由此插入自定义代码以执行他们可能需要的其他功能。 一个例子是常用的wp_head操作钩,许多主题和插件都使用它来注入其他CSS样式表,处理代码或它们需要放置在WordPress主题的XHTML结构的<head>和</head>标签之间的任何其他内容。 这就是包含wp_head();的原因wp_head(); 在所有WordPress主题中。 要挂接一个动作,请在主题的functions.php文件(或插件的代码)中创建一个函数,然后使用add_action()函数将其挂接,如下所示: <?php add_action( 'wp_head', 'wpcandy_actionhook_example' ); function wpcandy_actionhook_example () { echo '&lt;meta name="description" content="This is the meta description for this page." /&gt;' . " “; } // End wpcandy_actionhook_example() ?> ...

2019-11-10 · 2 min · Duke Yin

使用wp_update_post代替wp_publish_post

最近制作Keep Minutes网站的时候,遇到一个问题: 前端发布理所应当使用wp_insert_post(),但是同时需要将经纬度地理信息也一并添加进日志meta信息,如果wp_insert_post()里的array设为'post_status' => 'publish',则可能会造成来不及将meta信息添加好,文章就发布了,meta信息就添加失败。所以只能先存一个草稿。 解决:使用wp_insert_post()创建一篇草稿(draft),添加上一些meta信息,并紧接着使用wp_publish_post()试图将这篇“草稿文章”发布出来 $post_id = wp_insert_post( array( 'post_author' => $user_id, 'post_title' => wp_strip_all_tags($post_content), 'post_content' => $post_content, 'tags_input' => strip_tags($tags), 'post_status' => 'draft' ) ); add_post_meta($post_id, 'address', $address, true); wp_publish_post( $post_id ); 这倒是解决了meta信息添加失败的问题,但新的问题又来了,这样发布的文章缺失slug和时间日期,其原因是wp_publish_post()除了将文章状态由“草稿”改为“已发布”,并没有额外的操作,缺失了文章数据。 解决:使用使用wp_update_post代替wp_publish_post 把 wp_publish_post( $post_id ); 改为 ...

2015-02-09 · 1 min · Duke Yin

解决VPS中Wordpress更新或上传需要FTP账号密码

将以下添加到“wp-config.php” /** 解决更新需要FTP。 */ putenv('TMPDIR=' . ini_get('upload_tmp_dir')); if(is_admin()) { add_filter('filesystem_method', create_function('$a', 'return "direct";' )); define( 'FS_CHMOD_DIR', 0751 ); }

2014-12-31 · 1 min · Duke Yin