WordPress - 即使在主题或网站更新后也会覆盖核心功能

时间:2015-04-28 20:10:34

标签: php wordpress function upgrade overwrite

我当然搜索了这个,但是我需要一个解决方案,即使在我升级主题和/或将整个WordPress网站升级到更新版本之后仍然存在。

基本上,在显示帖子之前,我想显示特定的HTML。我希望它绝对万无一失,因为我将把网站交给一个老家伙。我也不想安装任何插件,因为我很确定他会随机点击内容。 - 必须是无缝的。

它必须类似于这样做:(post-template.php)

function the_content( $more_link_text = null, $strip_teaser = false) {
$content = get_the_content( $more_link_text, $strip_teaser );

 /**
 * Filter the post content.
 *
 * @since 0.71
 *
 * @param string $content Content of the current post.
 */
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
$EXTRA_HTML='';
if(is_single()){$EXTRA_HTML='INSERT HTML HERE';}
    echo $EXTRA_HTML.$content;
}

我无法理解它。我应该放什么?更新只是让它消失了。

1 个答案:

答案 0 :(得分:0)

为了确保您在帖子和主题更新中不会覆盖您构成的任何解决方案,最好的方法是创建Child Theme并在适当的位置添加您想要的HTML。可能在循环模板或single.php上,具体取决于基本主题的结构。

这样,即使Wordpress或他正在使用的核心主题更新,您也可以在线使用您的解决方案,因为您的儿童主题不会被替换。

另一种解决方案是使用主题并通过对WP设置进行两次简单调整来确保它始终在线:

  1. 在wp-content文件夹中创建一个名为 mu-plugins 的新文件夹,然后将自定义插件放在那里。 mu-plugins 代表Must Use Plugins,此文件夹上的插件将始终启用,除非您从服务器文件夹中删除它,否则无法关闭。
  2. 确保用户无法通过在 wp-config.php 上删除define( 'DISALLOW_FILE_MODS', true );行来修改主题和插件文件。
  3. 这两种解决方案都可以帮助您实现此自定义,而无需常规用户通过简单的按钮点击就可以打破它。如果这仍然是一个问题,您还可以隐藏任何可能导致将来出现问题的管理员设置。我经常使用上面的解决方案Adminimize来确保任何用户都不会点击并破坏其他内容。