首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在短代码中定义get_the_post_thumbnail_url的回退映像

get_the_post_thumbnail_url 是 WordPress 中用于获取文章特色图片 URL 的函数。在短代码中定义其回退图像,意味着当文章没有特色图片时,使用一个默认的图像作为替代。

以下是如何在短代码中实现这一功能的步骤:

基础概念

  • WordPress 短代码:短代码是一种自定义的标签,允许用户在 WordPress 内容中插入自定义功能。
  • get_the_post_thumbnail_url:此函数获取当前文章的特色图片 URL。
  • 回退图像:当主要资源(如特色图片)不可用时,使用的备用资源。

类型与应用场景

  • 类型:WordPress 短代码开发。
  • 应用场景:网站设计需要确保每篇文章都有图片展示,即使某些文章没有设置特色图片。

实现方法

  1. 创建短代码:首先,你需要创建一个自定义短代码。
  2. 获取特色图片 URL:使用 get_the_post_thumbnail_url 函数尝试获取特色图片 URL。
  3. 设置回退图像:如果没有获取到特色图片 URL,则使用预设的回退图像 URL。

示例代码

代码语言:txt
复制
function custom_thumbnail_shortcode( $atts ) {
    // 获取当前文章 ID
    $post_id = get_the_ID();

    // 尝试获取特色图片 URL
    $thumbnail_url = get_the_post_thumbnail_url( $post_id, 'full' );

    // 如果没有特色图片,则使用回退图像
    if ( ! $thumbnail_url ) {
        $fallback_image_url = 'https://example.com/path/to/fallback-image.jpg'; // 替换为你的回退图像 URL
        $thumbnail_url = $fallback_image_url;
    }

    // 返回图片 HTML
    return '<img src="' . esc_url( $thumbnail_url ) . '" alt="' . get_the_title() . '">';
}
add_shortcode( 'custom_thumbnail', 'custom_thumbnail_shortcode' );

使用短代码

在你的 WordPress 文章或页面中,你可以这样使用这个短代码:

代码语言:txt
复制
[custom_thumbnail]

参考链接

通过这种方式,你可以确保即使文章没有特色图片,页面上也会显示一个默认的回退图像,从而保持网站设计的一致性和美观性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET平台系列26:在 Windows 上安装 .NET Core.NET5.NET6

系列目录 【已更新最新开发文章,点击查看详细】   本文介绍如何在 Windows 上安装 .NET。 .NET 由运行时和 SDK 组成。...“Web 和云”部分中的“ASP.NET 和 Web 开发”工作负荷 。 “Web 和云”部分中的“Azure 开发”工作负载 。 “桌面和移动”部分中的“NET 桌面开发”工作负载 。 ?...提示:安装程序返回退出代码 0 以表示成功,返回退出代码 3010 以表示需要重启。 任何其他值通常都是错误代码。...每个存储库包含 .NET(SDK 或运行时)和可以使用的操作系统的不同组合的映像。 Microsoft 提供适合特定场景的映像。...例如,ASP.NET Core 存储库提供针对在生产环境中运行 ASP.NET Core 应用生成的映像。

3.3K10
  • 一文详解 WordPress 文章特色图片或缩略图功能

    开启文章缩略图功能 要使用文章缩略图功能,首先需要通过函数 add_theme_support() 来开启,具体是在当前 WordPress 主题的 functions.php 文件中添加以下代码: add_theme_support...我们可以设置额外的自定义尺寸缩略图,代码如下: 在 functions.php 中添加如下代码: add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size...index.php 或者 home.php(取决主题的结构)中的主循环添加如下代码: 定义文章缩略图顺序,首先使用文章特色图片,如果没有设置文章特色图片,可以定义获取文章缩略图的顺序。...get_the_post_thumbnail():获取文章缩略图而不是输出它 有时候,我们可能在 PHP 代码中返回文章缩略图,而不是输出它,可以使用下面简单的代码: $image = get_the_post_thumbnail

    1.5K10

    深孔钻削方法总结

    某些类型的钻头在深孔加工方面具有固有优势。如抛物线槽麻花钻,它改变了槽的几何形状,以优化深孔的排屑效果。枪钻和 BTA 钻都是针对深孔的需求,尤其是排屑。 冷却液在排屑过程中至关重要。...开放的孔会导致切屑被冲到底部,必须再次排出。 自定义深孔循环使用自定义 g 代码来优化每个阶段的啄钻策略,因为孔会越来越深。 自定义深孔钻孔循环 不幸的是,固定钻孔循环在钻非常深的孔时通常会受到限制。...理想情况下,您希望在不啄钻的情况下钻几倍直径的深度,然后开始啄钻。孔钻得越深,啄钻的频率就需要增加。啄钻的性质也必须根据孔深而改变。我们从一点短回退开始——刚好足以折断切屑。...最后,只要我们在编写自定义循环,我们就需要考虑是否使用快速或进给速度进行啄钻和从孔中回退。这是不切割任何东西的反向运动,与保持所有运动处于进给速度的固定钻孔循环相比,我们有可能节省更多时间。...通过使用自定义 g 代码来实现所有这些功能, 我们可以在啄钻上浪费尽可能少的时间,同时确保当加工变得艰难时,我们能够做些事情来保持刀具正常运行而不会损坏。

    10510

    使用GitLabCI实现monorepos项目CICD

    基于现代Web的应用程序通常都包含多种服务。例如,后端API和前端客户端。在规模扩大成为问题的大型项目中,服务也可以拆分为多个微服务。如何在这样的项目中组织源代码?...这包括构建和测试服务,将每个服务捆绑在Docker映像中,并将这些映像存储在(私有)GitLab Docker Registry中。...基本上,GitLab CI / CD管道包括几个阶段如build,test和deploy。该管道配置有一个名为.gitlab-ci.yaml的文件,该文件存储在我们存储库的根目录中。...而且,我们通常只希望构建,测试和部署应用程序中已更改的那些服务,而不是将所有服务都合并在一起,因为这可能会非常耗时。 在.gitlab-ci.yaml文件中我们为每个服务和每个阶段定义job。...一旦构建和测试,我们的Docker镜像就可以部署了。我们为应用程序的每个服务定义部署作业,在其中登录服务器并触发从GitLab Docker镜像仓库中提取新映像。

    9.5K30

    Spring Boot2+Resilience4j实现容错之Bulkhead

    相比之下,Netflix Hystrix对Archaius有一个编译依赖关系,Archaius有更多的外部库依赖关系,如Guava和Apache Commons。...我们可能并不希望这种不友好的提示,因此Resilience4j提供了自定义的失败回退方法。当请求并发量过大时,无法正常执行的请求将进入回退方法。...().createObjectNode().put("errorFile", System.currentTimeMillis()); } 注意:回退方法应该和调用方法放置在同一类中,并且必须具有相同的方法签名...可以看到,我们定义的回退方法,在请求过量时起作用了。...演示了如何在Spring Boot2项目中引入Resilience4j库,使用代码示例演示了如何在Spring Boot2项目中实现Resilience4j中的两种Bulkhead(SemaphoreBulkhead

    2K40

    java JNI简介

    编译 JAVA VM支持多线程,native 方法在编译的时候需要加上对应的参数,如 gcc加上 -D_REENTRANT或者-D_POSIX_C_SOURCE 加载 代码如下 package pkg...native double f(int i, String s); static { System.loadLibrary(“pkg_Cls”); //名字可以随便定义...如果要静态连接可以使用 JNI的函数 RegisterNatives 静态连接需要把所有的library复制到可执行的映像中;动态连接是把共享的library的名字放在一个可执行的映像中,当映像运行的时候才去连接...,生成的方法是 Java_com_study_jnilearn_HelloWorld_sayHello: 查找规则:VM查找native library里面的方法名,首先查找短的名字,即方法名没有参数签名...形参参数列表中,引用类型以L开头,后面紧跟类的全路径名(需将.全部替换成/),以分号结尾 比如:long f(int n,String s,int[] arr); 对应的Native方法签名是

    54220

    一个优秀的镜像仓库是什么样的?

    从历史上看,注册管理机构规范完全由Docker定义,最近通过OCI分布规范独立完成。...当然,OpenShift客户还可以继续使用来自ISV合作伙伴的第三方注册解决方案,如JFrog Artifactory和Sonatype Nexus。 ?...加密的CLI密码 洪流分布 容器和应用程序注册 与Quay.io保持一致的UI和代码库 镜像扫描: ? 自动构建: 通过集成到GitHub,Bitbucket等,自动构建存储库推送操作上的映像。...随着代码(GitHub,Bitbucket,GitLab和Git)中的推送操作发生,Quay将自动构建新版本的应用程序 ?...触发quay中的代码自动构建: ? 过一会,构建成功: ? 给新的镜像分配tag: ? ? 修改应用的dc,使用新的image,触发应用重新构建: ? ? 重新构建完毕后,页面变成: ?

    2.5K30

    在你的浏览器中构建和共享开发人员环境

    如何点击一个按钮,并在一个预先配置的开发环境找到自己,动动手指就可以让IDE拥有丰富的编辑工具和项目资源?如何在本地开发,但在云中编译和运行项目?好的,第一件事情是首要的。...在Codenvy中构建Dockerfile与在本地构建Dockerfile没有区别——都是相同的指令,相同的规则,相同的输出。还有几个特定的Codenvy功能,如项目源注入到映像。...添加了附加源代码后,你可以执行grails命令,打包应用程序并使用servlet容器部署工件(你可以下载Tomcat或使用我们的基本映像中最常用的servlet容器安装)。这很简单。...这是构建自定义环境的一种方式——即使用Codenvy基础映像并在其上安装东西。如果你想拥有一个你很熟悉的环境,这个方法就行得通,因为这是你建立的。...否则,你可以直接前往DockerHub,在那里找到一个合适的映像(花费一些时间选择最好的映像),并将其用作自定义配置中的基础映像。幸运的是,有许多官方的映像是轻量级的,没有不必要的软件和工具。

    4.5K90

    Spring 官宣,抛弃原生 JVM!网友:这是要单干啊!

    实际上,这意味着自 Spring 成立以来,除了 Spring 支持的常规 Java 虚拟机之外,我们还将添加 Beta 支持,以使用 GraalVM 将 Spring 应用程序编译到本机映像中,从而提供一种部署...Kubernetes 平台 想要创建最佳的容器映像来打包您的 Spring 应用程序和服务 在使用场景上,比如 Piotr Mińkowski 提供了一个非常棒的指南,介绍了如何在 Knative 上使用...提前转换 本机不同于 JVM:类路径在构建时是固定的,例如需要反射或资源进行配置,没有类延迟加载(可执行文件中附带的所有内容在启动时都加载到内存中),并且可以调用一些代码在构建时。...要记住的一个关键点是,在使用 Spring Native 时,默认情况下在 JVM 上也会使用 AOT 生成的代码,以允许您使用 JVM 允许的短反馈循环来行使“本机友好的代码路径”。...我们可能会改进 IDE 的集成,现在确保在 IDE 中运行应用程序之前,请先阅读相关文档以进行潜在的手动配置步骤,以更新生成的源代码。 结论 Spring 战略要本地化有两个主要支柱。

    1.7K20

    Spring 官宣,干掉原生 JVM!

    实际上,这意味着自 Spring 成立以来,除了 Spring 支持的常规 Java 虚拟机之外,我们还将添加 Beta 支持,以使用 GraalVM 将 Spring 应用程序编译到本机映像中,从而提供一种部署...等 Kubernetes 平台 想要创建最佳的容器映像来打包您的 Spring 应用程序和服务 在使用场景上,比如 Piotr Mińkowski 提供了一个非常棒的指南,介绍了如何在 Knative...提前转换 本机不同于 JVM:类路径在构建时是固定的,例如需要反射或资源进行配置,没有类延迟加载(可执行文件中附带的所有内容在启动时都加载到内存中),并且可以调用一些代码在构建时。...要记住的一个关键点是,在使用 Spring Native 时,默认情况下在 JVM 上也会使用 AOT 生成的代码,以允许您使用 JVM 允许的短反馈循环来行使“本机友好的代码路径”。...我们可能会改进 IDE 的集成,现在确保在 IDE 中运行应用程序之前,请先阅读相关文档以进行潜在的手动配置步骤,以更新生成的源代码。 5. 结论 Spring 战略要本地化有两个主要支柱。

    1.3K40

    Spring新版本抛弃JVM,可独立部署,网友:要自立门户???

    ,该映像仅随附 JDK,Spring 以及您在应用程序中使用的依赖项中的必需位。...等 Kubernetes 平台 想要创建最佳的容器映像来打包您的 Spring 应用程序和服务 在使用场景上,比如 Piotr Mińkowski 提供了一个非常棒的指南,介绍了如何在 Knative...提前转换 本机不同于 JVM:类路径在构建时是固定的,例如需要反射或资源进行配置,没有类延迟加载(可执行文件中附带的所有内容在启动时都加载到内存中),并且可以调用一些代码在构建时。...要记住的一个关键点是,在使用 Spring Native 时,默认情况下在 JVM 上也会使用 AOT 生成的代码,以允许您使用 JVM 允许的短反馈循环来行使“本机友好的代码路径”。...我们可能会改进 IDE 的集成,现在确保在 IDE 中运行应用程序之前,请先阅读相关文档以进行潜在的手动配置步骤,以更新生成的源代码。 5. 结论 Spring 战略要本地化有两个主要支柱。

    85730

    「无服务器架构」动手操作Knative -第1部分

    Knative Eventing用于松散耦合、事件驱动的服务的Knative事件处理。 Knative Build,用于注册表中的无痛苦的代码到容器的工作流。 让我们从本地服务开始。...Hello World服务(Serving) 要将你的代码部署为Knative服务,你需要: 将代码装入容器并将映像推入公共注册中心。...在我的Knative教程的Hello World服务部分中,我详细描述了这些步骤,但是在这里重述一下,这是一个最小的Knative服务定义service-v1的方式service-v1.yaml的样子:...它还创建了一个新的路线,新的修订将开始接收流量。 ? 在我的Knative教程的更改配置一节中,您可以看到更改Knative服务的环境变量或容器映像如何触发新修订的创建。...我的Knative教程的流量分割部分有更多的例子,比如如何在现有的版本之间分割流量。 与其他服务集成 Knative服务可以很好地与其他服务集成。

    1.7K10

    React 面试必知必会 Day 6

    如何在 React 中对 props 进行验证? 当应用程序运行在开发模式时,React 会自动检查我们在组件上设置的所有 props,以确保它们具有正确的类型。...由于对性能的影响,它在生产模式中被禁用。必需 props 是用 isRequired 定义的。 预定义的 props 类型集合。...将 React 整合到传统的 MVC 框架中需要一些额外的配置。 代码的复杂性随着内联模板和 JSX 的增加而增加。 太多的小组件导致了过度工程化或模板化。 4....return { hasError: true }; } render() { if (this.state.hasError) { // 你可以渲染任何自定义的回退用户界面...对于大型代码库,建议使用静态类型检查器,如 Flow 或 TypeScript,在编译时进行类型检查并提供自动补全功能。 7. react-dom 包有什么用?

    5K30

    如何在Ubuntu 18.04和Ubuntu 18.10,16.04上安装Systemback

    本教程将向您展示如何在Ubuntu 18.04和Ubuntu 18.10上安装Systemback。 Systemback是一个简单的系统备份和恢复应用程序,根据GPLv3许可条款发布。...2016年停止了它的开发,所以Ubuntu 18.04和18.10不在支持列表中。...如您所见,您可以创建系统的还原点,还原到某个点,将系统复制到另一个分区,将系统安装到新分区,创建实时系统(可引导ISO映像),修复系统和升级软件 系统。...如何从当前系统创建可启动ISO映像 Systemback可以从您当前的系统创建自定义的ISO映像文件。 每个程序和文件都可以包含在ISO中。...因为我的系统有很多程序和文件,所以这个过程可能需要一些时间。 完成后,您可以使用可启动USB在其他计算机上安装自定义的Ubuntu系统。

    1.5K20

    Linux进程控制

    2.4错误码 为了获取普通函数的错误信息,操作系统提供了错误码这个接口 errno是错误码,它是记录系统最后一次错误代码的一个整数值,不同值表示不同含义,在#include中定义...0 进程没有正常运行,退出码没有任何意义 2.6.进程退出的方式 2.6.1.正常退出 就是在正常的程序代码中,如main函数走到结尾,或者是遇到return。这样的正常结束。...调用exit(),程序会立即终止,exit()同时会执行清理操作(如:刷新所有的输出缓冲区、关闭通过fopen打开的文件、malloc开辟的内存等),然后向操作系统返回退出码。...3.3.进程等待的两种方式:阻塞等待和非阻塞等待 3.3.1阻塞等待 定义:进程在发出某个请求(如:I/O操作、等待某个条件成立等)后,如果请求不能立即得到满足(如:数据未准备好、资源被占用等),进程会被挂起...exec函数的行为:仅在调用它的进程中生效,而不会影响到父进程。由于exec函数是在子进程中调用的,因此只有子进程的映像被替换,父进程的映像保持不变,父进程继续执行其后续代码。

    9910

    Git工作流程:如何在团队中协作?

    - 安装Git:运行下载的Git安装程序,并按照提示完成安装过程。可以选择默认选项或自定义设置。...的分支合并到当前分支 3.分支管理示例代码 下面的代码展示了如何在Git中创建、切换、删除分支,并将分支合并到主干版本中: # 创建一个新的开发分支 $ git checkout -b develop...在Git中,我们可以使用各种命令追溯Git仓库的历史记录,并回退到早期的版本。下面是一些相关的概念和代码详解。...4.追溯历史记录示例代码 下面的代码展示了如何在Git中查看历史记录并回退到早期版本: # 查看所有提交记录 $ git log # 查看file.py文件的提交历史记录 $ git log file.py...轻量级标签只是一个指向某个提交的引用,而附注标签则包含了更多的信息,如标签名称、创建者、创建时间、备注等。

    17710
    领券