Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对于所有链接,使用JS或PHP-Wordpress添加css以根据帖子类型切换链接的颜色_Javascript_Php_Jquery_Css_Wordpress - Fatal编程技术网

Javascript 对于所有链接,使用JS或PHP-Wordpress添加css以根据帖子类型切换链接的颜色

Javascript 对于所有链接,使用JS或PHP-Wordpress添加css以根据帖子类型切换链接的颜色,javascript,php,jquery,css,wordpress,Javascript,Php,Jquery,Css,Wordpress,我不确定该从哪条路开始,或者什么样的方式才是我想要实现的目标。无论是可以在PHP中实现,还是如何在JS中实现,我们都非常感谢您的帮助 对于在页面上找到的每个链接(可能在小部件、主题模板页面、论坛等中找到),我如何搜索并找到post_类型,然后为特定类型附加特定的链接颜色 例如: 查看侧栏小部件中最近发布的帖子列表 (以下是我可以描述代码意图的最佳方式): 此外,如果在站点的其他任何地方有指向另一篇文章的链接,例如在另一篇文章的正文内容中,甚至在论坛主题中,我需要在该链接中附加一个类。然后我的C

我不确定该从哪条路开始,或者什么样的方式才是我想要实现的目标。无论是可以在PHP中实现,还是如何在JS中实现,我们都非常感谢您的帮助

对于在页面上找到的每个链接(可能在小部件、主题模板页面、论坛等中找到),我如何搜索并找到post_类型,然后为特定类型附加特定的链接颜色


例如:

查看侧栏小部件中最近发布的帖子列表
(以下是我可以描述代码意图的最佳方式):

此外,如果在站点的其他任何地方有指向另一篇文章的链接,例如在另一篇文章的正文内容中,甚至在论坛主题中,我需要在该链接中附加一个类。然后我的CSS可以是类似于

.forum-post-link{color: #006400;}
.project-post-link{color: #00008B;}
.standard-post-link{color:#000;}

这里有一个现成的解决方案。您可能需要稍微调整选择器以避免主站点导航链接


锚定

不难用jQuery解析
标记的
href
,如果它们之间有区别,就可以判断它是哪种类型。我不太了解使用WP,但我不确定是否有更有效的方法,或者使用PHP是否更好。如果我的链接是这样构造的:
http://myurl/project/project-123
http://myurl/forums/topic/thread-123
http://myurl/post-123
。。解析所有这些链接、将类附加到
标记的最佳方法是什么?如果可能,我们能否获得边框颜色,以便对url中包装在
标记+
/post\u type/
中的图片执行相同的操作?另外,我想我会略去帖子,因为我无法将它们与静态页面分开。谢谢php或javascript中的解析原则相同。在javascript中更容易一点,因为您可以将标记视为对象。如果在php中完成,css将作为页面加载参数生效。。我已经修改了you's original example,将包装在“”标记中的任何相同post_类型img的背景设置为样式。那么现在我应该做什么来排除导航链接呢?是否有方法检查该链接的父元素的现有类?下面是我的思考过程,如果代码语言被更正,它将如何“工作”
if$(this).parent('li')。parentclass('main-nav')然后不做任何其他操作运行代码来添加类
,我猜这些链接中的大多数都位于主内容容器中。如果有一个公共类或ID显示在每个页面上,那么可以在其中查看…类似于
$('.wp\u content a')…
是的,您是正确的。导航菜单的I have没有将类添加到
元素中,而是添加到子菜单或主菜单的父
  • 元素中。还可以使用
    not()
    …类似于
    $('a')。not('mainNavClass a')。每个(..
    感谢您的帮助..现在一切都解决了..这是最终产品,包括附加的更改和一些样式以供演示。
    .forum-post-link{color: #006400;}
    .project-post-link{color: #00008B;}
    .standard-post-link{color:#000;}
    
    /* set according to site domain */
    var siteHost = "myurl.com";
    
    var linkClasses = {
        /* adjust string values as classes to suit css rules, keys match term to look for in url */
        post: 'post',
        forum: 'forum',
        project: 'project'
    }
    
    $('a').each(function () {
    
        var host = this.hostname; /* returns domain.com */
        if (host !== siteHost) {
            return; /* not a local link, quit here */
        }
        var newClass = '';
        var path = this.pathname; /* returns eveything after http://myurl.com  */
    
        if (path && path !== '/') {
            /* we only want to look at first part of path*/
            var mainPath = path.split('/')[1];
            /* now check all the various terms in linkClasses object */ 
            $.each(linkClasses, function (key, value) {
                if (mainPath.indexOf(key) > -1) {
                    newClass = linkClasses[key];
                }
            });
    
            $(this).addClass(newClass);
        } else {
            /* is home page link */
            $(this).addClass('home'); /* to test home page link finding ability */
        }
    });