WordPress自定义域和自定义分类图片 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

  很久前就在筹划一个站,最近也想开始折腾,顺便扒一个皮,

WordPress自定义域和自定义分类图片

。按照倡萌的设想,要使用到自定义域功能来设定列表和首页的图片(其实是图标),以及短标题(也就是文章的标题可以是很长的,但是在首页调用的只是一个短的词组);还可能会给每一个分类设定一个图片,当文章没有图片,也没有自定义图片时,自动调用分类的图片。所以摘录以下文章作参考。

WordPress自定义域

  关于WordPress自定义域,就拿一个例子来看吧。

  自定义字段是 WordPress 的一个很强大的功能,但对于普通的使用者来说用处并不大…

  关于如何通过自定义字段给 WordPress 博客首页中的每篇日志添加图片的方法,网上有不少介绍。

  在博客首页的每一篇日志中都会显示一篇和内容相关的图片,该图片是我事先准备好的,而非日志中的缩略图,这张图片在单篇日志的内容中可以不予显示。如果我没有为日志指定一张图片,那么自动会有一张默认的图片进行“填充”。效果看下面出现的那张图。

  在 index.php 中找到如下或类似的代码:

<span class="sh_symbol"><?</span>php <span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">the_excerpt</span><span class="sh_symbol">();</span> <span class="sh_symbol">?></span> 或 <span class="sh_symbol"><?</span>php <span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">the_content</span><span class="sh_symbol">();</span> <span class="sh_symbol">?></span>

  前者是输出摘要,后者是输出全文,了解 WordPress 的朋友肯定都知道,这里就不多说了。找到这行代码后,我直接在它的前面添加如下代码:

<span class="sh_symbol"><?</span>php <span style="color: rgb(165, 42, 42); font-weight: normal; font-style. normal; " class="sh_keyword">if</span> <span class="sh_symbol">(</span> <span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">get_post_meta</span><span class="sh_symbol">(</span>$post<span class="sh_symbol">-></span>ID<span class="sh_symbol">,</span> <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">'index_image'</span><span class="sh_symbol">,</span> <span style="color: rgb(165, 42, 42); font-weight: normal; font-style. normal; " class="sh_keyword">true</span><span class="sh_symbol">)</span> <span class="sh_symbol">)</span> <span class="sh_symbol">:</span> <span class="sh_symbol">?></span>
<span class="sh_symbol"><?</span>php $image <span class="sh_symbol">=</span> <span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">get_post_meta</span><span class="sh_symbol">(</span>$post<span class="sh_symbol">-></span>ID<span class="sh_symbol">,</span> <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">'index_image'</span><span class="sh_symbol">,</span> <span style="color: rgb(165, 42, 42); font-weight: normal; font-style. normal; " class="sh_keyword">true</span><span class="sh_symbol">);</span> <span class="sh_symbol">?></span>
<span class="sh_symbol"><</span>a href<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php the_permalink() ?>"</span><span class="sh_symbol">><</span>img src<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php echo $image; ?>"</span>
alt<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php the_title(); ?>"</span> <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_regexp">/></</span>a<span class="sh_symbol">></span>
<span class="sh_symbol"><?</span>php <span style="color: rgb(165, 42, 42); font-weight: normal; font-style. normal; " class="sh_keyword">else</span><span class="sh_symbol">:</span> <span class="sh_symbol">?></span>
<span class="sh_symbol"><</span>a href<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php the_permalink() ?>"</span><span class="sh_symbol">></span>
<span class="sh_symbol"><</span>img src<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php bloginfo('stylesheet_directory'); ?>/images/vc-default.png"</span> alt<span class="sh_symbol">=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<?php the_title(); ?>"</span> <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_regexp">/></</span>a<span class="sh_symbol">></span>
<span class="sh_symbol"><?</span>php endif<span class="sh_symbol">;</span> <span class="sh_symbol">?></span>

  仔细看这段代码,这里用了一个 if else 的条件判断语句:

  第一行中,if 括号里面的条件 ‘index_image’ 如果为 true(真),也就是说,我在编辑文章时使用了这个自定义字段,那么就直接执行第二行代码:输出 index_image 这个值,index_image 的值是一张图片的绝对地址,所以我这里就直接输出了这张图片,并加上该篇日志的链接;

  第三行的 else 的意思是除了第一行条件 true(真)之外(那就是假了)的话就执行第四行的代码;

  第四行中我输出了一张位于主题文件夹的 images 目录下的默认的图片——vc-default.png ,同时也带上了文章的链接,

电脑资料

WordPress自定义域和自定义分类图片》(https://www.unjs.com)。

  根据刚开始的那张图按下面的步骤就可以添加自定义字段了:

  1、添加自定义字段名:index_image (添加过一次之后就直接能在下面的下拉菜单中选择了);

  2、添加放在首页文章里的图片绝对地址;

  3、点击“添加自定义字段”的按钮。

  这样,更新完日志之后就能在首页看到效果了~ 不过根据不同的博客主题,需要对这张图片进行不同的样式定义,比如 float:right 或 left ,亦或再给图片加个 border 等等,这就要看大家的想象力和喜好了。

WordPress自定义分类图片

  get the category 可以获取 cat_ID(分类 ID)、cat_name(分类名)、category_nicename(分类缩略名)、category_description(分类描述)、category_parent(分类层级) 以及 category_count 等信息,那么,我们就可以用 category_nicename 命名图片,然后匹配并输出。

<span class="sh_symbol"><?</span>php <span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">foreach</span><span class="sh_symbol">((</span><span style="color: rgb(0, 0, 0); font-weight: bold; font-style. normal; " class="sh_function">get_the_category</span><span class="sh_symbol">())</span> as $cat<span class="sh_symbol">)</span>
	<span class="sh_cbracket">{</span>
	$catname <span class="sh_symbol">=</span>$cat<span class="sh_symbol">-></span>category_nicename<span class="sh_symbol">;</span>
	echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<a href</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">/category/"</span><span class="sh_symbol">;</span>
	echo $catname<span class="sh_symbol">;</span>
	echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"/</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">>"</span><span class="sh_symbol">;</span>
	echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<img src</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">/wp-content/cat-icons/"</span><span class="sh_symbol">;</span>
	echo $catname<span class="sh_symbol">;</span>
	echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">".jpg</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string"> alt=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">$catname category image</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string"> border=</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">0</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string"> /></a></span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">n</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"</span><span class="sh_symbol">;</span>
	<span class="sh_cbracket">}</span>
<span class="sh_symbol">?></span>

  代码很简单,就是查询日志所在分类及其缩略名,然后自动在 cat-icons 目录匹配 category_nicename.jpg,然后输出。当然,你可以更改.jpg为你喜欢的各种图片格式。代码的第四行:

echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<a href</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">/category/"</span><span class="sh_symbol">;</span>

  中category应该改为你所设置的固定链接格式的名字,比如我这里设置的是/c/分类名,那就需要把这一行代码改为:

echo <span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">"<a href</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_specialchar">"</span><span style="color: rgb(255, 0, 255); font-weight: normal; font-style. normal; " class="sh_string">/c/"</span><span class="sh_symbol">;</span>

  倡萌从中得到启发,应该是可以实现缩略图的调用顺序,比如:特色图片>自定义域图片>文章第一张>分类图片>随机图片>默认图片,这个以后真用到或者有时间的时候再试试。

最新文章